MySQL Query仅适用于WordPress

时间:2015-05-11 20:26:05

标签: php mysql wordpress

我试图找到答案,但我的问题似乎太具体了。

我的查询包含拉丁字符:

$mydb->query("SELECT cotação FROM compras");

在WordPress短代码中调用时工作正常,但在同一网站上的自定义php中,它给了我这个:

  

您的SQL语法有错误;检查与您的MySQL服务器版本相对应的手册,以便在#comp;' o FROM compras'附近使用正确的语法。在第1行

现在,我不想删除这些字符,因为我知道查询有效,而我更了解问题。

那么这里发生了什么?感谢。

1 个答案:

答案 0 :(得分:1)

要在本地计算机上运行此功能,在我将排序规则和NAMES设置为UTF8之前,它将无效。从我在搜索中发现的大量数据中可以看出,这是人们遇到的非ASCII字符的主要问题。

为了让它与我的本地PDO实例一起使用,我做了以下事情:

    $pdo->exec("SET collation_connection = utf8_bin");
    $pdo->exec("SET NAMES utf8");
    $all = $pdo->query("SELECT * FROM temp_cotação LIMIT 5")->fetchAll();

您可以在此处找到更多信息:

PDO cutting off strings at a UTF-8 character

在我看来,最好是全局而不是按连接...我发现这样做为每个连接做SET NAMES utf8全局:

How to make PDO run SET NAMES utf8 each time I connect, In ZendFramework

要在mysqli_中做同样的事情,请看这里:

php mysql SET NAMES 'utf8' COLLATE 'utf8_unicode_ci' doesn't work with mysqli (solved)