【问题标题】:PHP Mysql connection throwing non-object issue [duplicate]PHP Mysql连接抛出非对象问题[重复]
【发布时间】:2015-12-16 03:19:12
【问题描述】:

这个php连接代码报错了……

这是完整的代码:

<?php

header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");

$conn = new mysqli("localhost", "myusername", "mypassword", "mydatabase");

$result = $conn->query("SELECT title FROM mytable");

var_dump($result);

$outp = "";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
    if ($outp != "") {$outp .= ",";}
    $outp .= '"title":"'. $rs["title"]     . '"}';
}
$outp ='{"records":['.$outp.']}';
$conn->close();

echo($outp);

?>

这是它抛出的错误:

致命错误:在第 13 行的 /home/mypath/public_html/connection.php 中的非对象上调用成员函数 fetch_array()

这里的错误点:

while($rs = $result->fetch_array(MYSQLI_ASSOC)) {

我该如何解决这个问题?

【问题讨论】:

  • 为什么引用 }'; 中的大括号?
  • var_dump($result); 显示了什么?
  • 另外,您的查询也可能失败;检查您的查询 php.net/manual/en/mysqli.error.php 中的错误,这不是 glorified 评论。

标签: php mysql mysqli


【解决方案1】:

您的查询失败。 mysqli::query 在查询失败时返回 false,否则返回 mysql_result 对象。

失败时返回 FALSE。对于成功的 SELECT、SHOW、DESCRIBE 或 EXPLAIN 查询 mysqli_query() 将返回一个 mysqli_result 对象。为了 其他成功的查询 mysqli_query() 将返回 TRUE。

通过在控制台上运行它来确保您的查询是正确的。您还应该在运行查询时检查错误。

$result = $conn->query("...") or trigger_error($conn->error);

【讨论】:

    猜你喜欢
    • 2011-06-15
    • 2020-11-20
    • 2012-10-27
    • 2020-01-22
    • 2011-06-03
    • 2017-07-13
    • 1970-01-01
    • 1970-01-01
    • 2012-02-22
    相关资源
    最近更新 更多