更改列mysql查询时出错

时间:2012-10-02 05:13:36

标签: php mysql

此查询有什么问题?

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..' ;

1 个答案:

答案 0 :(得分:5)

当我解码bas64字符串时,它以;<br />结尾。如果您使用PHP来显示它,请确保使用htmlentities,否则浏览器会将<br />翻译为换行符,您将看不到它。

您需要查看发送POST数据的应用程序。看起来它正在从输入构建HTML,因此换行符正在转换为<br />