php - 没有 bind_param 的 mysqli 准备语句

标签 php mysqli

我有用于选择 fname 的代码来自用户表上的最新记录。

$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);
$sdt=$mysqli->('SELECT fname FROM user ORDER BY id DESC LIMIT 1');
$sdt->bind_result($code);
$sdt->fetch();
echo $code ;

我在 bind_param 中使用了准备好的语句早些时候,但现在在上面的代码中,我第一次想使用没有绑定(bind)参数的准备语句,我不知道如何在不使用 bind_param() 的情况下从表中进行选择.怎么做?

最佳答案

如果像您的情况一样,没有要绑定(bind)的内容,则只需使用 query()

$res = $mysqli->query('SELECT fname FROM user ORDER BY id DESC LIMIT 1');
$fname = $res->fetch_row()[0] ?? false;

但是,即使查询中要使用单个变量,您也必须用占位符替换它,从而准备查询。

但是,在 2022 年及以后,(从 PHP 8.1 开始)您确实可以跳过 bind_param,即使对于准备好的查询,直接将变量发送到 execute(),在数组形式:

$query = "SELECT * FROM `customers` WHERE `Customer_ID`=?";
$stmt = $db->prepare($query);
$stmt->execute([$_POST['ID']]);
$result = $stmt->get_result();
$row = $result->fetch_assoc();

关于php - 没有 bind_param 的 mysqli 准备语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22115616/

相关文章:

php - csv文件导入到mysql数据库使用php面临导入错误

php - 加载文件中的数据给我一个访问被拒绝的权限错误。我还能如何将文本文件导入数据库中的表中?

带有 MySQLi 提取的 PHP 不会在 LEFT JOIN 上返回带有 NULL 的行

php - 如何为从数据库中获取的文件制作下载按钮?

php - PDO 准备语句,正确使用?

php - 将数据添加到数据库的最佳方式是什么?

php - Silex Twig 库的 View /资源位置

php - 我在使用 mysqli free() 成员函数时遇到问题

php - 如何知道与数据库的连接是否使用 SSL

php - 如何在不修改其内容的情况下忽略 phpunit 中的测试方法?