我是使用PHP准备语句的新手。我试图获得“full_name”的值...到目前为止,我被困在这里。任何人都可以帮忙解决这个问题吗?谢谢!
if($db->connect_error){
echo "Connection Error";
}
$id = 834;
$stmnt = $db->prepare("SELECT * FROM checkout_page where id = ?");
$stmnt->bind_param("i", $id);
if (!$stmnt->execute()) {
echo "Execute failed: (" . $stmnt->errno . ") " . $stmnt->error;
}
$row = $stmnt->fetch();
答案 0 :(得分:0)
您需要使用bind_result
将变量绑定到所需的列。然后,每次调用fetch()
时,这些变量都将使用下一行的值进行更新。 fetch()
使用mysqli 不会返回行/结果。
这意味着您无法使用SELECT *
。您需要指定所需的字段。
if($db->connect_error){
echo "Connection Error";
}
$id = 834;
$stmnt = $db->prepare("SELECT full_name FROM checkout_page where id = ?");
$stmnt->bind_param("i", $id);
if (!$stmnt->execute()) {
echo "Execute failed: (" . $stmnt->errno . ") " . $stmnt->error;
}
$stmnt->bind_result($full_name);
$stmnt->fetch();
echo $full_name;
或者,如果您安装了mysqlnd驱动程序,则可以使用get_result()
来获取结果集,就像运行了普通查询而不是预处理语句一样。
if($db->connect_error){
echo "Connection Error";
}
$id = 834;
$stmnt = $db->prepare("SELECT * FROM checkout_page where id = ?");
$stmnt->bind_param("i", $id);
if (!$stmnt->execute()) {
echo "Execute failed: (" . $stmnt->errno . ") " . $stmnt->error;
}
$result = $stmnt->get_result();
$row = $result->fetch_assoc();
echo $row['full_name'];