未捕获错误:无法使用mysqli_result类型的对象作为数组

时间:2016-08-10 20:19:47

标签: php mysqli

致命错误:未捕获错误:无法在C:\ xampp \ htdocs \ tourist \ AddFavorites.php中使用mysqli_result类型的对象作为数组:20 堆栈跟踪:

0 {main}

抛出 C:\ xampp \ htdocs \ tourist \ AddFavorites.php 在线

$user_id = $_POST['user_id'];
$place_id = $_POST['place_id'];

$sth = ("select count(*) as count from favorites WHERE place_id=$place_id
    AND user_id=$user_id");

       $result = $con->query($sth);

if($result['count']>0){

             $output = array(
            'status'=>"0",
            'operation'=>"already exists"
            );

            echo json_encode($output);
            $db = null;

            return;
        }
        else{
..}

和第20行是if($ result ['count']> 0)我已经找到了现有的解决方案,但它仍然没有用。

2 个答案:

答案 0 :(得分:0)

mysqli_result不能以这种方式使用。它基本上表示查询提取的所有行,因此您需要通过其中一种方法从中获取一行(请查看手册)。

你可能想要这样......

$result = $con->query($sth);
$row = $result->fetch_array();
if($row['count']>0){
 // ...
}

答案 1 :(得分:-1)

运行查询后

$result = $con->query($sth);

$result不是数组,通常是资源或TRUE或FALSE。你可以检查你的结果是否有这样的错误

if (!$result){
// This is an error
}

如果要检查行数,可以这样做

if (mysql_num_rows ($result) > 0){
// No or rows greater than 0
}

我强烈建议查看PHP手册

http://php.net/manual/en/function.mysql-query.php

甚至更好地使用mysqli

http://php.net/manual/en/book.mysqli.php

你现在应该使用哪个......