我有用于选择 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/