我试图获取非对象的属性值

时间:2016-06-30 09:43:21

标签: php

这可能听起来像是重复但我在这里搜索了所有关于此的主题,但仍然没有运气...... :(

我有这段代码:

$result = array();

include 'conn.php';
$sql = "SELECT * FROM editlistm WHERE checkvou IN (SELECT checkvou FROM editlist)";
$result = $conn->query($sql);
//$numRows = $result->count($rs);   
$numRows = $result->num_rows;


if ($numRows > 0) {
// output data of each row
    while($row = $result->fetch_object()) {
        array_push($items, $row);
    }
    echo json_encode($items);
} 

conn.php:

$servername = "localhost";
$username = "root";
$password = "";
$dbase = "cadacctg";

// Create connection 
$conn = new mysqli($servername, $username, $password, $dbase);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

我没有看到任何错误,但它一直在说:

  

'试图获取C中的非对象属性:...第11行' ($ numRows = $ result-> num_rows;)

为什么它不被视为对象?我能做些什么呢? 提前谢谢:)

4 个答案:

答案 0 :(得分:0)

使用fetch_objectfetch_array获取字段值。

答案 1 :(得分:0)

var_dump($result) before $numRows = $result->num_rows;

如果这是错误的,则查询中存在问题

答案 2 :(得分:0)

问题是,这段代码:

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

可能会失败。

http://php.net/manual/en/mysqli.query.php#refsect1-mysqli.query-returnvalues

  

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

所以你需要对它进行检查,例如:

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

// For SELECT query, check if it's false
if (!$result) {
    exit('Query has failed.');
}

答案 3 :(得分:0)

检查您的值是否正确并且不是假的:

$numRows

如果->query正常工作,这只会返回{{1}}的非布尔负值。