このクエリを使用すると、MySQL 構文エラー (1064) が発生します。私は SO に関する数十の mysql 構文の質問を精査し、狂ったようにグーグルで検索し、この SQL ステートメントを無駄に見つめてきました。ステートメントを実行する前に、mysqli の real_escape_string() を使用しています。私は(絶望的に)クエリからすべての改行を削除しようとしましたが、これは役に立ちません。エラーの原因は何ですか?
INSERT INTO `file_upload`.`files` (
`id`,
`name`,
`user_id`
)
VALUES (
NULL,
'filename.txt',
1
)
私が得ているエラーにはメッセージがあります:
... 1 行目の '\'filename.txt\',1)' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。
編集
これが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);
}