【问题标题】:How to set mysql_query('set Names utf8') in wp-db file in wordpress如何在 wordpress 的 wp-db 文件中设置 mysql_query('set Names utf8')
【发布时间】:2015-09-09 07:04:13
【问题描述】:

我正在用 wordpress 开发一个库尔德网站。我想按库尔德语字母顺序获取所有数据。

例如

$alpha='ش';
 $results =$wpdb->get_results("SELECT * FROM ".$wpdb->prefix."books where `author_name` like '$alpha%'");
print_r($results); 

这不返回任何内容。

但是当我使用英文字母运行此查询时,它工作正常。我知道mysql_query('set Names utf8') 是核心php 中此类问题的解决方案,但我不知道在哪里以及如何设置mysql_query('set Names utf8');在 wordpress 的 wp-db.php 中

【问题讨论】:

    标签: php mysql wordpress utf-8


    【解决方案1】:

    当您的表是 UTF-8 但您的连接不是时,请尝试设置以下常量:

    define( 'DB_CHARSET', 'utf8' );
    

    还可以设置列编码:

    define( 'DB_COLLATE', 'utf8_general_ci' );
    

    警告:确保在更改任何编码之前备份数据库。

    如果所有这些都不是问题,那么您设置 $alpha 变量的脚本可能没有以 UTF-8 编码。

    【讨论】:

    • 嗨,我已经在我的 wp-config.php 文件中设置了这些行 define( 'DB_CHARSET', 'utf8' );define( 'DB_COLLATE', 'utf8_general_ci' );我也运行此代码 $results =$wpdb->get_results("SELECT * FROM ".$wpdb->prefix."books where author_name like 'و%'");再次显示警告错误:mysql_set_charset(): Error execution query in C:\xampp\htdocs\wordpress\wp-includes\wp-db.php on line 776
    • 你检查过你的 PHP 脚本文件的编码吗?
    • 我不知道如何检查这个请告诉我
    • 啊,所以你在 Windows 机器上。变化很大,您使用的是 windows-1252 编码。在编辑器/IDE 中打开文件,显示编码。如果您安装了记事本++,请打开文件并从菜单中选择“编码”。应选中“在没有 BOM 的情况下以 UTF-8 编码”选项。如果您选择所有代码 (STRG+A),然后从菜单中选择“编码 > 转换为不带 BOM 的 UTF-8”。
    • 顺便说一句:你也应该正确地转义变量:wordpress.stackexchange.com/a/8847
    猜你喜欢
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 2019-04-06
    • 1970-01-01
    • 2010-10-09
    • 2014-08-27
    • 1970-01-01
    • 2013-03-01
    相关资源
    最近更新 更多