php - Mysql文件上传错误?

标签 php mysql

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

Error: please try again, You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1' at line 1

我认为它发生在最后一个 if($exe) 执行时

<?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();
}

?>

最佳答案

您正在查询您的查询结果:

$query = mysql_query('...');
$exe   = mysql_query($query);

只需替换 $query = mysql_query('...');$exe = mysql_query('...')它应该可以工作。

编辑

正如您问题的评论者也指出的那样,您的脚本容易受到 SQL 注入(inject)的攻击。在将其发布到网上之前,您应该先阅读相关内容。

http://en.wikipedia.org/wiki/SQL_injection
http://php.net/manual/en/security.database.sql-injection.php

关于php - Mysql文件上传错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7553158/

相关文章:

MYSQL:计算订单总额的函数

mysql - 更新 Mysql(如果 2 列为空,则转到接下来的 2 列)

php - notepad++ 中的输出窗口

php - PHP 的 y2k_compliance php.ini 设置做了什么?

php - Apache 用户帐户无密码访问服务器 - Ubuntu

mysql - 使用 PHPMyAdmin 替换 MySQL 中的字符串

php - 如何在 Laravel 4.2 中自动生成特定类别任务的序列号?

php - 如何从 Playstation Store 获取价格

php - 如何找出你的机器上 crypt() 使用的算法?

mysql - 将右表的多条记录过滤成左表的1条记录