将非英语字符串插入数据库

时间:2015-07-28 作者:inverted_index

如何将非英语字符串(如波斯语)插入Wordpress数据库中的tabale?当我插入波斯字符串时,它显示为"??????" 表格中的字符?代码如下:

-正在创建表:

function fjn_add_polls_table_to_db(){
    global $wpdb;
    $polls_table = $wpdb->prefix. \'polls\';
    if( $wpdb->get_var( "SHOW TABLES LIKE \'{$polls_table}\'" ) != $polls_table ){
        $query =
            "CREATE TABLE {$polls_table} (
            poll_id BIGINT(20) UNSIGNED ZEROFILL AUTO_INCREMENT PRIMARY KEY,
            title VARCHAR(128),
            author_id TINYINT(4) ,
            all_votes BIGINT(20) DEFAULT 0
            );";
        require_once( ABSPATH. \'wp-admin/includes/upgrade.php\' );
        dbDelta( $query );
    }
}
register_activation_hook(__FILE__, \'fjn_add_polls_table_to_db\');
-插入:

function add_records_to_db(){
    global $wpdb;
    global $post;
    $pid=get_the_ID();
    $ptitle=get_the_title();
    $aid=$post->post_author;
    $wpdb->insert( 
    \'wp_polls\', 
    array( 
        \'poll_id\' => $pid , 
        \'title\' => $ptitle,
        \'author_id\' => $aid,
        \'all_votes\' => "",
    ), 
    array( 
        \'%d\', 
        \'%s\',
        \'%d\',
        \'%d\'
    ) 
);
}
add_action( \'publish_poll\', \'add_records_to_db\');
请注意$ptitle 是非英语字符串。

1 个回复
SO网友:mmm

在大多数情况下,使用自定义Post类型而不是创建新表会更容易,然后它可以解决您的编码问题,因为WordPress使用unicode

结束

相关推荐

$wpdb returns duplicate posts

我创建了一个短代码,显示用户上次登录后创建的帖子。这个短代码工作得很好,但我不知道为什么,但我得到了7个重复的帖子。就像测试一样,我创建了一个名为“示例文章”的帖子,当我呼出帖子的标题时,我得到了这个结果。Sample Article Sample Article Sample Article Sample Article Sample Article Sample Article Sample Article Sample ArticleShortcodefunction latest_posts_af