此查询有什么问题?
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
注意mysql错误中有一个<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..' ;
答案 0 :(得分:5)
当我解码bas64字符串时,它以;<br />
结尾。如果您使用PHP来显示它,请确保使用htmlentities
,否则浏览器会将<br />
翻译为换行符,您将看不到它。
您需要查看发送POST数据的应用程序。看起来它正在从输入构建HTML,因此换行符正在转换为<br />
。