【问题标题】:MySQL query working in phpmyadmin but not in phpMySQL查询在phpmyadmin中工作但不在php中
【发布时间】:2017-07-29 10:49:15
【问题描述】:

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

怎么了? 谢谢

【问题讨论】:

  • 真的吗? Here I'm getting 0 results?你应该得到ResultsNo results
  • @Error404 这不是问题。
  • $results= mysqli_query($conn, "SELECT * FROM test WHERE russia = 'привет'") 或死(mysqli_error($conn));请用我的替换这一行,看看是否出现任何错误......没有错误我无法得到问题
  • @Jay 以下查询在 myadmin 中打印什么? SELECT COUNT(*) FROM test WHERE russia = 'привет'
  • 你有一个专栏叫俄罗斯?

标签: php mysql


【解决方案1】:

您的查询中有西里尔字符,因此可能需要设置 mySQL 连接编码。如果您使用utf-8,请在 mysqli_connect 之后插入以下行:

mysqli_query($conn, "SET NAMES 'utf8'");

或者如果您的脚本保存在 windows-1251 中,请使用以下命令:mysqli_query($conn, "SET NAMES 'cp1251'");

有关连接字符集和编码的更多信息,请参阅the manual

为什么查询在 phpMyAdmin 中有效?因为它可能会在后台为您设置编码。

【讨论】:

  • 谢谢你,你帮了我很多:)
  • 如果我的帖子回答了您的问题,请mark it as accepted。非常感谢。
【解决方案2】:
  1. 您不会以任何方式得到 0 个结果,要么得到结果,要么没有结果。 2.尝试从表名中删除引号
  2. 检查连接编码是否存在任何编码问题,以及列 russia 值的数据是否被解析为其他内容。 在执行主查询之前尝试执行以下查询

    mysqli_query($conn,"SET character_set_results='utf8',character_set_client='utf8',character_set_connection='utf8',character_set_database='utf8',character_set_server='utf8'");

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

【讨论】:

    猜你喜欢
    • 2018-06-19
    • 1970-01-01
    • 2015-05-17
    • 2018-07-19
    • 2013-03-29
    • 1970-01-01
    • 1970-01-01
    • 2023-04-05
    • 2019-02-09
    相关资源
    最近更新 更多