Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 由于未安装MySQLnd,MySQLi准备的语句显示错误_Php_Mysql_Mysqli - Fatal编程技术网

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

Php 由于未安装MySQLnd,MySQLi准备的语句显示错误,php,mysql,mysqli,Php,Mysql,Mysqli,我使用这段代码在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-&

我使用这段代码在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: Call to undefined method mysqli_stmt::get_result()
因为我没有安装MySQLnd,但我无法安装它,因为我使用的是共享web服务器,主机不会安装它


如何使用MySQLi prepared语句而不必安装MySQLnd,因为我想防止SQL注入攻击

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

$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
子句中明确列出列名称,而不是
*
,因为这种访问结果的方法取决于列的特定顺序。

每个人都在告诉我不要使用MySQL,因为MySQL已被弃用,所以我尝试学习一些新的东西,没有人帮助。我在互联网上也找不到任何关于它的信息,因为我只是得到了同样的错误。如果你使用PDO,你最终会得到同样的依赖关系。您还可以获得新的主机,在那里您可以选择您的依赖项;)@你可能只是运气不好。MySQL对于简单的Web开发没有什么错。正如他们所说,仇恨者会憎恨。这只是个人口味。只有在某些“极端”情况下,选择不使用MySQL才可能是关键。不要犹豫使用它@杰西卡为什么不能?准备好的陈述不需要ND司机。@Barmar你说得对-我不知道为什么他认为他需要ND。他需要MySQLi,但事实是,他无法控制自己的环境,而且在没有安装MySQLi的情况下,您无法使用这样的库。这就是重点。看看文档中的示例。我添加了一个示例。但是,当你刚接触某样东西的时候,文档不是你首先要看的地方吗?如果没有,它应该是。是否有一个通用函数可以用于不需要指定
$var1,$var2…
?@luke如果您有
MYSQLND
驱动程序,您可以在执行准备好的语句后使用
$stmt->fetch_assoc()
获取关联数组。