我想从MySQL中的表中选择数据。 我在php中的代码:
$conn = mysqli_connect($db_server, $db_benutzer, $db_passwort, $db_name);
$results= mysqli_query($conn, "SELECT * FROM `test` WHERE russia = 'привет'");
if(mysqli_num_rows($results) > 0) {
echo "Results";
}
else {
echo "No results";
}
mysqli_close($conn);
我在这里得到“没有结果”。但是当我直接在phpmyadmin中运行SELECT代码时,我得到了一个结果。
怎么了? 谢谢
答案 0 :(得分:4)
您的查询中有西里尔字符,因此可能需要设置mySQL连接编码。如果您使用utf-8
,请在mysqli_connect之后插入以下行:
mysqli_query($conn, "SET NAMES 'utf8'");
或者,如果您的脚本保存在windows-1251中,请使用以下命令:mysqli_query($conn, "SET NAMES 'cp1251'");
有关连接字符集和编码的详细信息,请参阅the manual
为什么查询在phpMyAdmin中有效?因为它可能会在后台为您设置编码。
答案 1 :(得分:-2)
检查连接编码是否存在任何编码问题,并将列俄罗斯值的数据解析为其他内容。 在执行主查询之前尝试执行以下查询
mysqli_query($ conn," SET character_set_results =' utf8',character_set_client =' utf8',character_set_connection =' utf8',character_set_database =&# 39; UTF8',被character_set_server =' UTF8'&#34);
如果连接中存在编码问题,则会出现问题。