预处理语句 echo JSON encode 转为空结果
Prepared statement echo JSON encode turns empty result
if(isset($_POST["id"])){
$stmt = $mysqli->prepare("SELECT * FROM account WHERE id = ?");
$stmt->bind_param("s", $_POST["id"]);
$stmt->execute();
$row = $stmt->get_result();
echo json_encode($row);
}
由于某种原因,结果为空并产生此错误。
尝试访问 null
类型值的数组偏移量
我做错了什么?我发现似乎没有任何效果。
对 $stmt->get_result();
的调用只是将 mysqli_stmt
对象的结果放入 mysqli_result
对象中,您仍然需要将结果行作为单独的调用获取
if(isset($_POST["id"])){
$stmt = $mysqli->prepare("SELECT * FROM account WHERE id = ?");
$stmt->bind_param("s", $_POST["id"]);
$stmt->execute();
$result = $stmt->get_result();
//You still need some version of a FETCH after $stmt->get_result();
$row = $result->fetch_assoc();
echo json_encode($row);
}
if(isset($_POST["id"])){
$stmt = $mysqli->prepare("SELECT * FROM account WHERE id = ?");
$stmt->bind_param("s", $_POST["id"]);
$stmt->execute();
$row = $stmt->get_result();
echo json_encode($row);
}
由于某种原因,结果为空并产生此错误。 尝试访问 null
类型值的数组偏移量我做错了什么?我发现似乎没有任何效果。
对 $stmt->get_result();
的调用只是将 mysqli_stmt
对象的结果放入 mysqli_result
对象中,您仍然需要将结果行作为单独的调用获取
if(isset($_POST["id"])){
$stmt = $mysqli->prepare("SELECT * FROM account WHERE id = ?");
$stmt->bind_param("s", $_POST["id"]);
$stmt->execute();
$result = $stmt->get_result();
//You still need some version of a FETCH after $stmt->get_result();
$row = $result->fetch_assoc();
echo json_encode($row);
}