gpt4 book ai didi

php - 如何在另一个页面上获取 bind_result() 的值

转载 作者:行者123 更新时间:2023-11-29 01:38:42 25 4
gpt4 key购买 nike

db_handler.php 页面

public function getAllUserList($user_id) {
$stmt = $this->conn->prepare("SELECT list_id,name,date_created FROM list WHERE user_id = ?");
$stmt->bind_param("i", $user_id);
$stmt->execute();
$list = $stmt->bind_result($list_id,$name,$date_created);
$stmt->close();
return $list;
}

index.php

$result = $db->getAllUserList($user_id);
while ($result->fetch()) {
$tmp = array();
$tmp["id"] = $list_id;
$tmp["list_name"] = $name;
$tmp["createdAt"] = $date_created;
array_push($response["lists"], $tmp);
}

它给出了 fatal error

PHP Fatal error: Call to a member function fetch() on a non-object

以前我使用的是 $stmt->get_result() 方法而不是 bind_result 但它开始抛出错误

PHP Fatal error: Call to undefined method mysqli_stmt::get_result().

如果我在 dbhandler.php 页面上使用 while ($result->fetch()) 它工作正常。但它在 index.php

上给出了错误

最佳答案

您需要返回 $stmt 而不是 $list 并且不关闭语句(直到您获取所有结果之后)。

您还需要将 bind_result 从函数中取出,因为变量是有范围的。

public function getAllUserList($user_id) {
$stmt = $this->conn->prepare("SELECT list_id,name,date_created FROM list WHERE user_id = ?");
$stmt->bind_param("i", $user_id);
$stmt->execute();
return $stmt;
}

...

$result = $db->getAllUserList($user_id);

$result->bind_result($list_id,$name,$date_created);

bind_result(所以 $list)返回一个 bool 值来指示成功或失败,而不是结果集,所以你试图调用 fetch ()true(或 false)上。

关于php - 如何在另一个页面上获取 bind_result() 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32225395/

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