1

これらのいまいましい構文エラーに本当に苦労しています。誰かがこれの何が問題なのかわかる場合は、教えてください:

クエリ文字列

INSERT INTO Categories (ParentId,Title,Desc) VALUES (?,?,?)

渡された配列の Print_R

Array
(
    [0] => 1
    [1] => Lolcats
    [2] => an entire category dedicated to the language, lolcats!
)

エラー:

<b>Fatal error</b>:  Uncaught exception 'PDOException' with message 'SQLSTATE[42000]: Syntax error or access violation: 1064 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 'Desc) VALUES ('1','Lolcats','an entire category dedicated to the language, lolca' at line 1' in /usr/www/maxtingle/Blog/System/Core/Functions.php:168
Stack trace:
#0 /usr/www/maxtingle/Blog/System/Core/Functions.php(168): PDOStatement-&gt;execute(Array)
#1 /usr/www/maxtingle/Blog/System/Core/Category.php(12): Functions\Database-&gt;Insert('(ParentId,Title...', 3, Array)
#2 /usr/www/maxtingle/Blog/System/Category.php(9): Categories::CreateCategory(Object(CategoryIns))
#3 [internal function]: Category::Create()
#4 /usr/www/maxtingle/Blog/index.php(52): call_user_func_array(Array, Array)
#5 {main}
  thrown in <b>/usr/www/maxtingle/Blog/System/Core/Functions.php</b> on line <b>168</b><br>
4

2 に答える 2

4

ベスト プラクティスは、キーワードの問題が発生しないように、すべてのテーブル名と列名にバック ティックを使用することです。

INSERT INTO `Categories` (`ParentId`,`Title`,`Desc`) VALUES (?,?,?)
于 2013-07-07T02:32:32.443 に答える
4

Descはキーワードです。列名として使用するには、バッククォートを使用します

INSERT INTO Categories (ParentId,Title,`Desc`) VALUES (?,?,?)
于 2013-07-07T02:24:02.257 に答える