我有一个将阿拉伯语存储在其中的 mysql 数据库,它在保存阿拉伯字符和检索内容方面都工作正常,我收到的探针是当我从数据库中检索此阿拉伯语内容并想在另一个查询中使用时,它不起作用:
//Database Connection
mysql_query("SET CHARACTER SET utf8");
$sql = mysql_query("SELECT * FROM `categories` WHERE 1");
while($row1 = mysql_fetch_array($sql))
{
$category = $row1['label_id']; //Arabic Content is retrieved displayed correctly
$query1 = mysql_query("SELECT * FROM `user_list` WHERE `Category` = '" .$category . "' ORDER BY `private_number` DESC");
$query1 = mysql_query("SET CHARACTER SET utf8");
while($row = mysql_fetch_array($query1))
{
//returns zero rows
}
}
但是当我复制上面的字符串 echo 并在不连接的情况下进行查询时,它确实工作得很好例:
$query1 = mysql_query("SELECT * FROM `user_list` WHERE `Category` = 'الأفراد' ORDER BY `private_number` DESC");
我的 php 代码有什么问题,我该怎么做才能更改它
-
确保"数据库和表排序规则"都设置为 utf8_general_ci。 如果没有,请使用这样的工具在备份数据库后转换排序规则。
-
文件的编码也应该是 UTF-8。
-
此外,请检查元标记内容类型是否设置为 utf-8:
<meta charset="utf-8">
HTML5,或<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
XHTML。