分享

两种设置MYSQL查询编码的PHP语句

 露初晞 2010-11-15

最近在修改minipage的时候碰上点小问题,研究好久终于得到解决,留此文做笔记.

mangos数据库的默认编码是UTF-8(因为游戏本身就采用此编码),但是在minipage的查询语句中没有考虑到非英语语种用户的字符格式问题,所以PHP网页上全部显示的都是????问号.

解决PHP网页在查询UTF-8数据库的乱码方法:

1.

//###########################第一种##########################
//get name from realmlist.name
function get_realm_name(){
global $lang_global, $dbhost, $dbuser, $dbpass, $realm_db, $realm_id;

mysql_connect($dbhost,$dbuser,$dbpass) or die(error($lang_global[’err_sql_conn_db’]));
mysql_select_db($realm_db) or die(error(”{$lang_global[’err_sql_open_db’]} (’$realm_db’)”));
mysql_query(”SET NAMES ‘GBK‘”) or die(error(mysql_error()));
$query = “Select name FROM `realmlist` Where id = ‘$realm_id’”;
$result = mysql_query($query) or die(error(mysql_error()));
$realm_name = mysql_result($result, 0);

mysql_close();
return($realm_name);
}

当PHP网页代码为蓝色这种格式的时候,只要在相应位置插入红色语句就可以了,GBK为编码格式,依具体情况,可改成你需要的编码格式.

2.

//########################第二种#######################
//get name from realmlist.name
function get_realm_name(){
global $lang_global, $dbhost, $dbuser, $dbpass, $realm_db, $realm_id;

$mysql_0 = new MySQL;
$link = $mysql_0->connect($dbhost, $dbuser, $dbpass, $realm_db);

$result = $mysql_0->query(”Select name FROM `realmlist` Where id = ‘$realm_id’”);
$realm_name = $mysql_0->result($result, 0);

$mysql_0->close();
return($realm_name);
}

如果网页代码是这种形式呢?

简单,只要在”$link = ….” 这一行下面加入这行语句就可以了:

$mysql_0->query(”SET NAMES ‘GBK’”);

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多