mysql 查询结果是问号,mysql结果返回?(问号)而不是Ö等

When i return a row from my mySQL database, I get a ? instead of some characters eg:ò, à

etc. My mysql row and table are set to utf8_unicode_ci, so I think the database is storing it correctly but php isnt returning it correctly.

Think it has something to do with mysql_set_charset but cant get it to work properly. Any help would be greatly appreciated!!

if($row = mysql_fetch_assoc(queryDb("SELECT * FROM customer WHERE uuid='".$_COOKIE['uuid']."'")))

{

$first_name = $row['first_name'];

$last_name = $row['last_name'];

$gender = $row['gender'];

$ileach_first_name = $row['ileach_first'];

$ileach_last_name = $row['ileach_last'];

}

//If Ileach Name is blank

if($ileach_last_name == "" || $ileach_first_name == ""){

// Get ileach last name

$row = mysql_fetch_assoc(queryDb("SELECT * FROM ileach_last_names WHERE eng_name='$last_name'"));

$ileach_last_name = $row['gae_name'];

if($ileach_last_name == "") {

$row = mysql_fetch_assoc(queryDb("SELECT * FROM ileach_last_names order by rand() limit 1"));

$ileach_last_name = $row['gae_name'];}

//Get ileach First Name

//If Male

if($gender == 'M') {

$row = mysql_fetch_assoc(queryDb("SELECT * FROM ileach_first_names_m WHERE eng_name='$first_name'"));

$ileach_first_name = $row['gae_name'];

//If no name is selected, get one randomly

if($ileach_first_name == "") {

$row = mysql_fetch_assoc(queryDb("SELECT * FROM ileach_first_names_m order by rand() limit 1"));

$ileach_first_name = $row['gae_name']; }

}

//If Female

else{

$row = mysql_fetch_assoc(queryDb("SELECT * FROM ileach_first_names_f WHERE eng_name='$first_name'"));

$ileach_first_name = $row['gae_name'];

//If no name is selected, get one randomly

if($ileach_first_name == "") {

$row = mysql_fetch_assoc(queryDb("SELECT * FROM ileach_first_names_f order by rand() limit 1"));

$ileach_first_name = $row['gae_name'];}

}

//Save ileach name into db

mysql_query("UPDATE customer SET ileach_first = '$ileach_first_name'

WHERE uuid='".$_COOKIE['uuid']."' ");

mysql_query("UPDATE customer SET ileach_last = '$ileach_last_name'

WHERE uuid='".$_COOKIE['uuid']."' ");

}

//Stitch name together.

$full_ileach_name .=$ileach_first_name;

$full_ileach_name .= " ";

$full_ileach_name .= $ileach_last_name;

?>

解决方案

"Think it has something to do with mysql_set_charset" - yes, very likely.

$mysql = mysql_connect(...); // TODO: error handling

mysql_select_db('...', $mysql); // TODO: error handling

mysql_set_charset('utf8', $mysql); // TODO: error handling

For mor detailed information we need to know more about the function queryDB() and related stuff (like e.g. where the database connection is established)

see also:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值