【问题标题】:I do not understand why my SQL-Query in PHP is not working correctly我不明白为什么我在 PHP 中的 SQL 查询无法正常工作
【发布时间】:2020-06-03 10:30:11
【问题描述】:
$sql2 = "SELECT `path` FROM `maps` WHERE `user` LIKE 0 AND `maps`.`id` = 1";

$result= $conn->query($sql2);
    while($row = $result->fetch_assoc()) {
    echo $row['path'];
    }

所以,我的问题是它没有进入 while 循环。 sql 查询是 100% 正确的(手动测试)并且 $conn 存在并且也可以正常工作。

【问题讨论】:

  • 看起来您需要开始调试...我们无法为您做的事情,因为只有您可以访问您的系统,而您没有告诉我们有关该系统的任何信息...那么您的http服务器的错误日志文件说什么?为什么你认为查询应该返回任何结果?

标签: php mysql sql mysqli


【解决方案1】:

user LIKE 0 有点奇怪,因为LIKE 是一个字符串匹配函数。

因为 MySQL 确实会键入强制转换(意思是:猜你想要什么),所以它会执行user LIKE '0'。您没有显示任何示例记录,因此很难猜出您的意思。修正您的查询,使其在您的应用程序中有意义。

您的程序没有进入 while 循环,原因有二:

  1. 一个空的结果集(查询没有返回任何行)。
  2. $conn->query() 踢回了一个错误。

你想要这样的东西。我使用了die,尽管它很粗糙,因为我不知道你的程序如何处理错误。

$result= $conn->query($sql2);
if ($result) {
    while($row = $result->fetch_assoc()) {
        echo $row['path'];
    }
} 
else {
    die $conn->error;
}

【讨论】:

    猜你喜欢
    • 2018-11-20
    • 2019-07-09
    • 1970-01-01
    • 2019-05-16
    • 1970-01-01
    • 1970-01-01
    • 2016-01-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多