gpt4 book ai didi

php - 为什么搜索会抛出对未定义错误方法 stmt::fetch_row() 的调用?

转载 作者:行者123 更新时间:2023-11-29 06:34:50 25 4
gpt4 key购买 nike

当我尝试使用 SELECT 语句查询数据库时,它工作正常,但是当我尝试通过将 LIKE 子句附加到原始查询来过滤返回的行时,它会引发 fatal error :调用未定义的方法 mysqli_stmt::fetch_row( )

if (isset($_POST["search"]))
{
$searchString = "%{$_POST['search']}%";
$queryStringAppend = " WHERE name LIKE ? OR state LIKE ?";
$stmt = $mysqli->prepare("SELECT COUNT(*) FROM $tableName " . $queryStringAppend);
//|| die("Ooops! Error occured: <br/>" . $mysqli->error);
$stmt->bind_param("ss", $searchString, $searchString);

$stmt->execute();
$stmt->store_result();
if ($mysqli->error) // CHECK IF ERROR HANDLER IS WORKING
die("Query failed: <br />" . $mysqli->error);
}
else
{
$stmt = $mysqli->query("SELECT COUNT(*) FROM $tableName ");
if ($mysqli->error)
die("Query failed: <br />" . $mysqli->error);
}

$totalRowCount = $stmt->fetch_row()[0]; // This is the line where the error is thrown

当未设置 $_POST["search"] 时,查询工作正常并显示所有结果。但是,如果我尝试过滤,则会引发错误:-(

最佳答案

这是因为fetch_row是mysqli_result的方法,而不是mysqli_stmt您需要先存储您的结果

    $results = $stmt->get_result()
$results->fetch_row()[0];

在第二个if中,mysqli->query("")直接返回一个mysqli_result对象,所以执行没有错误;

关于php - 为什么搜索会抛出对未定义错误方法 stmt::fetch_row() 的调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54411953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com