【问题标题】:MYSQLI Statement error showing incorrect but its correctMYSQLI 语句错误显示不正确但正确
【发布时间】:2017-09-17 18:47:33
【问题描述】:

我从 PHP 和 MYSQL 收到以下错误,但 SQL 语句是正确的,我直接从 PHPmyadmin, 获取它我已经包含了一张来自 PHPMYADMIN 的图片来显示表格。

$sql = 'SELECT * FROM company';

if ($mysqli->query($sql) === TRUE) {
    $result = $mysqli->query($sql);
    if ($result->num_rows > 0) {
    (data from result's)
    }
} else {
   echo "Error: " . $sql . "<br>" . $mysqli->error;
   exit();
}

结果:($mysqli->error 中没有任何内容;)

错误:SELECT * FROM company

在表中插入了 2 行,仍然出现同样的错误。

2 rows

删除了第一个 if 语句。

现在出现以下错误:

( ! ) 注意:尝试在第 248 行获取 C:\xampp\htdocs\mkpenterprices\Research.php 中非对象的属性

终于让 SQL 运行了,但它没有在 javascript 部分填充任何内容。

【问题讨论】:

  • 这似乎表明company 表中没有行。这是您将其视为错误的有效条件。
  • 是的,没有行,但它在第一个 if 语句上失败,第二个 if 语句如果 0 行则什么也不做。
  • 第一个if 语句如何失败?您在第二个if 语句中显示else 块的输出。如果有零行,这正是我期望的输出,你说这是正确的。那么究竟是什么问题呢?
  • @David 不,约翰是对的。请仔细查看(可怕的)格式化代码。
  • @JohnWilliams - 您正在查看查询是否在您的第一个 if 语句中返回文字 TRUE; SELECT 语句不会发生这种情况。相反,您应该得到一个结果对象,它永远不会解析为 TRUE

标签: php mysqli phpmyadmin


【解决方案1】:

只需这样做

$sql = 'SELECT * FROM company';


$result = $mysqli->query($sql);

if(!$result){
    echo "Error: " . $sql . "<br>" . $mysqli->error;
   exit();

}

if ($result->num_rows > 0) {
        while($row = $result->fetch_assoc()) {
        var_dump($row);
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-09-14
    • 2014-12-06
    • 2018-01-17
    • 1970-01-01
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    相关资源
    最近更新 更多