我是使用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();
您需要使用bind_result
将变量绑定到所需的列。然后每次调用fetch()
时,这些变量将使用下一行的值进行更新。fetch()
with mysqli does not返回你的行/结果
这意味着您不能使用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'];