Php 如何在SELECT*查询中使用bind_结果函数
我正在寻找一种方法,在不知道列数的情况下,从mysqli prepared语句中获取完整的行 这就是我已经成功测试过的Php 如何在SELECT*查询中使用bind_结果函数,php,mysqli,Php,Mysqli,我正在寻找一种方法,在不知道列数的情况下,从mysqli prepared语句中获取完整的行 这就是我已经成功测试过的 if ($stmt = $con->prepare("SELECT user_id FROM users where user_id = ?")) { $stmt->bind_param('s', '32'); $stmt->execute(); $stmt->bind_result($user_id);
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();
}
如何使用mysqli prepared语句进行
SELECT*
?如果要从结果集中获取未知数量的列,则不能使用bind\u result()
。此函数适用于单列或固定列数较少的情况
要从中获取结果,请选择*
使用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客户端编译的版本上不可用使用PDO而不是mysqli。有了PDO,mysqliYes中有什么方法吗?正如你可能已经了解到的,如果单击我发布的链接,请你引用任何工作示例,我只是想摆脱
bind_result()
,因为列数未知