当我从 mySQL 数据库返回一行时,我得到一个 ?代替某些字符,例如:ò、à
我的 mysql 行和表设置为 utf8_unicode_ci,所以我认为数据库正确存储它,但 php 没有正确返回它。
认为这有关系mysql_set_charset
但无法让它正常工作。任何帮助将不胜感激!!
<?php
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;
?>
“认为它与 mysql_set_charset 有关” - 是的,很有可能。
$mysql = mysql_connect(...); // TODO: error handling
mysql_select_db('...', $mysql); // TODO: error handling
mysql_set_charset('utf8', $mysql); // TODO: error handling
有关更详细的信息,我们需要了解有关函数 queryDB() 和相关内容的更多信息(例如数据库连接的建立位置)
也可以看看:
- http://dev.mysql.com/doc/mysql/en/charset-connection.html http://dev.mysql.com/doc/mysql/en/charset-connection.html
- http://docs.php.net/mysql_set_charset http://docs.php.net/mysql_set_charset
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)