我正在使用此查詢來獲取MySQL語法錯誤(1064)。我一直在搜索幾十個關於SO的mysql語法問題,像瘋了一樣Google搜索,盯着這個SQL語句無濟於事。在執行語句之前,我使用了mysqli的real_escape_string()。我試過(在絕望中)從查詢中刪除所有換行符,但這沒有幫助。什麼導致了錯誤?帶INSERT語句的MySQL語法錯誤1064
INSERT INTO `file_upload`.`files` (
`id`,
`name`,
`user_id`
)
VALUES (
NULL,
'filename.txt',
1
)
是我得到的錯誤有消息:
...檢查對應於你的MySQL服務器版本使用附近的「\」 FILENAME.TXT正確的語法手冊\ '1)' 在行1
EDIT
這裏是PHP代碼。連接是一個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代碼,也請? – andrewsi
而你只在參數上使用'real_escape_string()'而不在整個字符串上使用,不是嗎? – andrewsi
爲什麼你在這裏有單引號? '(NULL,'$ file-> name,$ user_id)' –