首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mysql文件上传错误?

问Mysql文件上传错误?
EN

Stack Overflow用户
提问于 2011-09-26 09:31:50
回答 2查看 261关注 0票数 0

这是我上传文件的代码。一切都很完美。此代码将文件上载到目标文件夹,MySQL查询完成工作,并将所有数据插入数据库中的相关字段。但是它不会转到header()函数中提到的页面。它在结尾给我一个错误,就像这样

错误:请重试,您的SQL语法出现了错误;请检查与MySQL服务器版本对应的手册,以获得在第1行使用接近“1”的正确语法。

我认为在执行最后一个if($exe)时会发生这种情况

代码语言:javascript
复制
<?php

include('./includes/connection.php');

if(!$_POST['song_name']){
    header('location: pro_add.php');
    exit;
}

$path = "../upload_data/";
$uniqid = uniqid(strtotime('now'));
$uniq_name = $uniqid .'_'. $_FILES['file']['name'];

$complete_path = $path . $uniq_name;

$move = move_uploaded_file($_FILES['file']['tmp_name'],$complete_path);

if(!$move){
    echo 'Error: please try again'."<br/>";
}

$query = mysql_query("INSERT INTO products SET
    sub_cat_id='".$_POST['sub_cat_id']."',
    song_name='".$_POST['song_name']."',
    artist='".$_POST['artist']."',
    path='".$complete_path."' ");

$exe = mysql_query($query);

if($exe){
    header('location: products.php');
    exit;
}else{
    echo 'Error: please try again, <br />' . mysql_error();
}

?>
EN

回答 2

Stack Overflow用户

发布于 2011-09-26 09:36:58

您正在查询查询的结果:

代码语言:javascript
复制
$query = mysql_query('...');
$exe   = mysql_query($query);

只需将$query = mysql_query('...');替换为$exe = mysql_query('...'),它就会正常工作。

编辑

正如对您的问题的评论者所指出的,您的脚本极易受到SQL注入的影响。在把这个放到网上之前,你应该先读一读。

http://en.wikipedia.org/wiki/SQL_injection

http://php.net/manual/en/security.database.sql-injection.php

票数 1
EN

Stack Overflow用户

发布于 2011-09-26 09:48:03

代码很好,但它只有一个问题。可能是你脑子里想不出来.

代码语言:javascript
复制
 $query = mysql_query("INSERT INTO products SET
           sub_cat_id='".$_POST['sub_cat_id']."',
           song_name='".$_POST['song_name']."',
           artist='".$_POST['artist']."',
           path='".$complete_path."' ");

而不是这样,你应该写

代码语言:javascript
复制
$query = "INSERT INTO products SET
          sub_cat_id='".$_POST['sub_cat_id']."',
          song_name='".$_POST['song_name']."',
          artist='".$_POST['artist']."',
          path='".$complete_path."'";

如果你替换了这么多代码,它就会正常工作。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7553158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档