これは非常に簡単であるはずですが、今は約2時間詰まっています。 4人の別々の人が見ており、明らかな問題は見つけられていません。だからもう一度私はSOのコミュニティに向ける。mysql-nodeでINSERT INTOエラーが発生しました
リアルシンプル - mysql-nodeを介してmysqlデータベースにデータを挿入しようとしています。私は接続エラーを取得すると、SELECTは正常に動作します。使用されているコードは次のとおりです。
exports.postNewCast = function(data, res) {
var query = "INSERT INTO cast (name, portrait, role, bio) VALUES ('" + data.name + "', '" + data.portrait + "', '" + data.role + "', '" + data.bio + "');";
console.log(query);
dbConnection.query(query, data, function(err, result) {
if (err) {
console.log(err);
} else {
sendResponse(res, "Cast Member Added", 201);
}
});
};
ログに記録されるエラーは、次のとおりです。(私にとっては)
{ [Error: ER_PARSE_ERROR: 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 'cast (name, portrait, role, bio) VALUES ('Jessie', 'images/cast/marissa.jpg', 'L' at line 1]
code: 'ER_PARSE_ERROR',
errno: 1064,
sqlState: '42000',
index: 0 }
奇妙な部分が(サーバーが実行されている)私は、ターミナルウィンドウからコピーすることができるということですconsole.loggedクエリ文字列を入力してmysqlコマンドラインに貼り付けてください。うまく動作します。 GRANTを使用して、ユーザーサーバーに実行権限があることを確認しようとしましたが、これは何もしませんでした。 INSERT INTO構文をコピーして貼り付けることを試みましたが、データ固有のフィールドを置き換えるだけです。 VALUESを使ってみましたか?オプションの後にデータオブジェクトが続き、同じ結果が得られます。
私はどんな愚かな間違いをしていますか?
ありがとうございました。
'' \ 'キャスト\"のようにテーブル名の前後に追加 –
バックチックはそれでした。私はあなたが単一引用符を意味していると思っていましたが、それは動作しませんでした。しかし、後ろのティックはそれをしました。 – DrHall