Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/246.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php $stmt->;尝试获取非对象的属性时出错_Php_Mysqli_Prepared Statement - Fatal编程技术网

Php $stmt->;尝试获取非对象的属性时出错

Php $stmt->;尝试获取非对象的属性时出错,php,mysqli,prepared-statement,Php,Mysqli,Prepared Statement,我有以下疑问: // pagination if ($stmt = $mysqli->prepare('SELECT COUNT(id) FROM ' . $table)) { $stmt->execute(); $stmt->bind_result($totalitems); $stmt->fetch(); if (!isset($page)) { $page = (int)$page_number <= 0

我有以下疑问:

// pagination
if ($stmt = $mysqli->prepare('SELECT COUNT(id) FROM ' . $table)) {
    $stmt->execute();

    $stmt->bind_result($totalitems);

    $stmt->fetch();

    if (!isset($page)) {
        $page = (int)$page_number <= 0 ? 1 : (int)$page_number;
    }

    $limit = 4;

    if ($page > ceil($totalitems / $limit)) {
        $page = ceil($totalitems / $limit);
    }

    $start = ($page - 1) * $limit;

    $stmt->close();

    if ($stmt2 = $mysqli->prepare(' SELECT t1.id, t2.*
                                    FROM ' . $table . ' t1
                                    INNER JOIN ' . $table2 . ' t2 ON t2.id = t1.id
                                    ' . $optional_cond . $optional_cond2 . '
                                    LIMIT ?, ?')) {
        $stmt2->bind_param('ii', $start, $limit);
        $stmt2->execute();

        $stmt2->bind_result($col1, $col2, etc...);

        while ($row = $stmt2->fetch()) {
            echo $col1 . '<br>';
        }
    } else echo "Statement failed: " . $mysqli->error . "<br>";
}
但它发出了以下通知:

Notice: Trying to get property of non-object
我看不出我的问题出在哪里,发生了什么

修复(作者@Michael Berkowski-在评论中):

else echo“语句失败:”$mysqli->错误。“
”;
好的,我知道现在发生了什么。您有两个条件语句,分别是
$optional\u cond
$optional\u cond2
,然后在查询
中包含这两个变量$可选条件$可选第2条。”。这里没有检查错误<代码>$optional_cond2='和t2.zone='$地带应读为
$optional\u cond2='WHERE t2.zone='$地带
我们在这里处理字符串,因此两个变量都需要引用。例如:
“$string”。
“$string”
错误将出现在
$mysqli
对象上,而不是
$stmt2
。检查
echo$mysqli->error
的输出。使用
while($stmt2->fetch()){…}
和绑定的变量$column1,$column2。。。在循环内部。请参阅上的示例,您无法使用
获取\u assoc()
Notice: Trying to get property of non-object
else echo "Statement failed: " . $mysqli->error . "<br>";