MySQL查询工作在phpmyadmin但不在php中

时间:2017-07-29 10:49:15

标签: php mysql

我想从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代码时,我得到了一个结果。

怎么了? 谢谢

2 个答案:

答案 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)

  1. 你不会以任何方式获得0结果,你要么得到结果,要么没有结果。 2.从表名中删除引号
  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);

  3. 如果连接中存在编码问题,则会出现问题。