Php 尝试在数据库中插入记录时发生SQL查询错误

Php 尝试在数据库中插入记录时发生SQL查询错误,php,mysql,sql,file-upload,Php,Mysql,Sql,File Upload,嘿伙计们我有个大问题我不知道为什么。。 我有几个表单可以将文件上传到数据库,除了一个表单外,所有表单都可以正常工作。。我全部使用相同的查询(简单插入)。我认为这与我试图上传的文件有关,但我不确定 代码如下: if ($_POST['action'] == 'hndlDocs') { $ref = $_POST['reference']; // Numeric value of $doc = file_get_contents($_FILES['doc']['tmp_name']); $lin

嘿伙计们我有个大问题我不知道为什么。。 我有几个表单可以将文件上传到数据库,除了一个表单外,所有表单都可以正常工作。。我全部使用相同的查询(简单插入)。我认为这与我试图上传的文件有关,但我不确定

代码如下:

if ($_POST['action'] == 'hndlDocs') {
$ref = $_POST['reference']; // Numeric value of
$doc = file_get_contents($_FILES['doc']['tmp_name']);


$link = mysqli_connect('localhost','XXXXX','XXXXX','documents');
mysqli_query($link,"SET autocommit = 0");

$query = "INSERT INTO documents ({$ref},
'{$doc}',
'{$_FILES['doc']['type']}')
;";
mysqli_query($link,$query);
if (mysqli_error($link)) {
    var_dump(mysqli_error($link));
    mysqli_rollback($link);
} else {
    print("<script> window.history.back(); </script>");
    mysqli_commit($link);
}

}
我得到的错误是:

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 '00001, '����' at line 1

更新:

除了我忘了在SQL查询中添加
。 我必须将
addslashes()
添加到从文件中收集的内容中,这一切都完成了

我会感激你的帮助。
干杯

您忘记添加
关键字。您使用的
INSERT
语法类型是隐式的。所以假设您的表只有3列,因为您只提供了3个值。但是,如果有3个以上的列,则需要在查询中显式定义列名称

$query = "INSERT INTO documents VALUES ({$ref}, 
                                       '{$doc}', 
                                       '{$_FILES['doc']['type']}');";
使用
SQL注入
时,您的查询易受攻击。请花点时间阅读下面的文章


啊。。。非常感谢我没看到。。谢谢你们,伙计们。。。我看起来笨吗?目前我正在构建基本结构,使其运行,然后应用安全措施。无论如何,谢谢你。我会检查这篇文章的。干杯
$query = "INSERT INTO documents VALUES ({$ref}, 
                                       '{$doc}', 
                                       '{$_FILES['doc']['type']}');";