1
UPDATE 'module_tests' SET 'tests_content' = REPLACE('tests_content', '<a onclick=', '<a class="dic"  onclick=');

phpmysql でトップ クエリを実行しようとすると、以下のエラーが発生しました。誰かがこの理由を教えてもらえますか?

#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 ''module_tests' SET 'tests_content' = REPLACE('tests_content', '<a onclick=', '' at line 1
4

2 に答える 2

2

tableおよび名前を囲む一重引用符を削除しcolumnます。クエリは次のようになります。

UPDATE module_tests SET tests_content = REPLACE(tests_content, '<a onclick=', '<a class="dic"  onclick=');

SQLFIDDLEをチェックしてください

一重引用符 (') とバッククォート (`) について混乱していると思います。あなたの例では、バックティックを使用して、テーブル名とフィールド名が mysql の予約語と競合しないようにすることができます..バックティックを使用すると、クエリを次のように変更できます。

UPDATE `module_tests` SET `tests_content` = REPLACE(`tests_content`, '<a onclick=', '<a class="dic"  onclick=');

バックティックを使用したクエリを確認する

于 2013-05-02T04:45:24.477 に答える
0

クエリを次のように変更します。

UPDATE `module_tests` 
   SET `tests_content` = REPLACE(`tests_content`, '<a onclick=', '<a class="dic"  onclick=');

テーブルと列の名前を文字列として渡しています。

于 2013-05-02T04:40:35.150 に答える