【发布时间】:2012-09-06 19:10:15
【问题描述】:
我在使用此查询时遇到 MySQL 语法错误 (1064)。我一直在搜索 SO 上的几十个 mysql 语法问题,疯狂地搜索,盯着这个 SQL 语句无济于事。在执行语句之前,我使用的是mysqli的real_escape_string()。我曾尝试(绝望地)从查询中删除所有换行符,但这没有帮助。是什么导致了错误?
INSERT INTO `file_upload`.`files` (
`id`,
`name`,
`user_id`
)
VALUES (
NULL,
'filename.txt',
1
)
我收到的错误消息是:
...查看与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 '\'filename.txt\',1)' 附近使用正确的语法
编辑
这里是 PHP 代码。 Connection 是一个 mysqli 对象。
public function add_file_to_user($file, $user_id) {
$query = "INSERT INTO `file_upload`.`files` (`id`,`name`,`user_id`) VALUES (NULL,'$file->name',$user_id)";
$res = $this->query($query);
die($this->connection->errno . $this->connection->error);
}
private function query($str) {
$str = $this->connection->real_escape_string($str);
return $this->connection->query($str);
}
【问题讨论】:
-
能否也添加您正在使用的 PHP 代码?
-
你只是在参数上使用
real_escape_string(),而不是在整个字符串上,不是吗? -
为什么这里有单引号?
(NULL,'$file->name,$user_id) -
@le_garry,抱歉,我是在匆忙中发布代码的。
标签: php mysql mysql-error-1064