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

注意 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..' ;
4

1 回答 1

5

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

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

于 2012-10-02T05:33:55.730 回答