WPDB->使用特殊字符插入

时间:2016-11-17 作者:Rhys Wynne

我在WPDB->插入插入特殊字符时遇到问题。

我正在尝试插入一个名称(Jiří),该名称正保存为?。

可以使用将字符正确插入到数据库中add_option, 这很奇怪。

下面是我正在尝试的代码版本:-

$memberdata = array( \'name\' => \'Jiří\', \'email\' => \'[email protected]\' );
add_option( \'temp_debug\', $member_data[\'name\'] ); // inserted as Jiří
$insert_into_temp=$wpdb->insert( wp_table, $member_data, array( \'%s\', \'%s\' ); // inserted as Ji?i
有什么想法吗?

2 个回复
SO网友:cybmeta

如果相同的代码适用于add_option() 而不是与$wpdb->insert() 在自定义表中,这可能是因为自定义表的排序规则不支持插入数据的字符。

如果您将表的排序规则设置为UTF-8,则应该有效,utf8_general_ci 至少(允许支持表情符号,WordPress uses utf8mb4_unicode_ci since version 4.2).

SO网友:Rhys Wynne

感谢@kovshenin&@以上cybmeta为我指出了正确的方向:)

虽然表格使用utf8mb4_unicode_ci, 使用的单个行latin1_swedish_ci.

将行切换到utf8mb4_unicode_ci, 已修复此问题。

谢谢

相关推荐

$wpdb->get_row返回什么?

由于插件中的调试和错误查找,我有一个简短的问题。$wpdb->;如果没有结果,返回get\\u row()?文件说明:(array|object|null|void) Database query result in format specified by $output or null on failure. 但当查看源代码时,它似乎返回了;null“;。。。如果您能快速提供帮助,我将不胜感激,我一直认为它会返回一个空数组,但我可能弄错了!