gpt4 book ai didi

php - 由于未安装 MySQLnd,MySQLi 准备好的语句显示错误

转载 作者:行者123 更新时间:2023-11-29 00:21:33 25 4
gpt4 key购买 nike

我正在使用这段代码在 MySQLi 中运行一个 select 语句

$stmt = $mysqli->prepare('SELECT * FROM admin WHERE forename = ? and surname = ? ');
$stmt->bind_param('vv', $forename, $surname);

$foremame = "Forename";
$surname = "Surname";

$stmt->execute();

$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
echo $row["sequence"];
}
$stmt -> close();
$mysqli -> close();

但我收到一个 fatal error :

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

因为我没有安装 MySQLnd,但我无法安装它,因为我使用的是共享 Web 服务器,主机不会安装它。

如何在不安装 MySQLnd 的情况下使用 MySQLi 准备语句,因为我想防止 SQL 注入(inject)攻击

最佳答案

您可以使用 $stmt->bind_result() 将结果绑定(bind)到变量,然后使用 $stmt->fetch() 将结果提取到绑定(bind)变量中.

$stmt->execute();
$stmt->bind_result($var1, $var2, $var3, ...); // Use more meaningful variable names

while ($stmt->fetch()) {
echo $var3; // to get the third column in the results
}

我强烈建议在 SELECT 子句中明确列出列名,而不是 *,因为这种访问结果的方法取决于列的特定顺序.

关于php - 由于未安装 MySQLnd,MySQLi 准备好的语句显示错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20848626/

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