gpt4 book ai didi

php - 如何在 SELECT * 查询中使用 bind_result 函数

转载 作者:行者123 更新时间:2023-12-05 07:47:23 25 4
gpt4 key购买 nike

我正在寻找一种在不知道列数的情况下从 mysqli 准备语句中获取完整行的方法

这是我测试成功的

if ($stmt = $con->prepare("SELECT user_id FROM users where user_id = ?")) {
$stmt->bind_param('s', '32');
$stmt->execute();
$stmt->bind_result($user_id);
while ($stmt->fetch()) {
printf ("%s \n", $user_id);
}
$stmt->close();
}

这工作正常但是如果我想要所有列并且我的查询将是 *

if ($stmt = $con->prepare("SELECT * FROM users where user_id = ?")) {
$stmt->bind_param('s', '32');
$stmt->execute();

$stmt->close();
}

SELECT *如何使用mysqli预处理语句?

最佳答案

如果您从结果集中获取未知数量的列,则不能使用 bind_result()。此函数对于单列或您有少量固定列数时很有用。

要从 SELECT * 获取结果,请使用 get_result() ,它将返回一个 mysqli_result 对象,您可以迭代该对象或获取单个对象行。

$user_id = 32;
$stmt = $con->prepare("SELECT * FROM users where user_id = ?");
$stmt->bind_param('s', $value);
$stmt->execute();
$result = $stmt->get_result();
foreach($result as $row) {
printf ("%s \n", $row['username']);
}

此函数在某些非常旧的 PHP 版本或针对 libmysql 客户端编译的版本上不可用

关于php - 如何在 SELECT * 查询中使用 bind_result 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39804471/

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