1

このクエリの何が問題になっていますか?

ALTER TABLE test_table 
CHANGE text_string text_string VARCHAR(255) 
    COLLATE utf8_unicode_ci NOT NULL 
    COMMENT 'hey here are mysql comments..' ;

PHPMyAdmin では問題なく動作しますが、PHP クラスからこのクエリを実行すると、次のように返されます。

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 '<br>' at line 1

<br>mysql エラーにタグがあることに注意してください<br />。私も自分のコードを検索した<br>ので、それは私ではありません。私はおそらく疲れているだけで、それはすべてのmysqlエラーにあります!

私はしばらくこれに取り組んできましたが、なぜ mysql はこのクエリを好まないのでしょうか? 新鮮な目は大歓迎です!


生成されたクエリを実行するための PHP ハンドラ:

$q = isset($_POST['q']) ? base64_decode(($_POST['q'])): false;

$db->q($q) or die("error: ".mysql_error());

はい、base64_decode は正しく機能しています。


$q 出力:

デコードされたクエリ

ALTER TABLE sNOWsh_amb_nicks_1st_test_table CHANGE text_string text_string VARCHAR(255) collate utf8_unicode_ci NOT NULL COMMENT 'hey here are mysql comments..' ;
4

1 に答える 1

5

そのbas64文字列をデコードすると、。で終わり;<br />ます。PHPを使用して表示している場合は、必ずを使用してくださいhtmlentities。そうしないと、ブラウザが改行に変換され、表示され<br />ません。

POSTデータを送信しているアプリケーションを確認する必要があります。入力からHTMLを構築しているように見えるため、改行はに変換されてい<br />ます。

于 2012-10-02T05:33:55.730 に答える