php - 准备好的语句回显 JSON 编码将结果变为空
问题描述
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);
}
推荐阅读
- javascript - 如何在Javascript中检查数组类型是否为累积和类型
- azure - 使用 databricks 集群管理身份
- visual-studio - Visual Studio 2019 - 如何将项目添加到 Azure DevOps Git?
- java - 得到匹配通配符的错误是严格的,但是找不到元素'tx:annotation-driven'的声明
- java - 使用旧的 log4j.jar 版本 1.2 是否存在任何漏洞或安全风险?
- python - 如何在venv中运行安装在本地/用户中的覆盖
- lua - Lua 中的 PEC 计算
- loops - 在 google app scirpt 中结合循环函数和 IF 条件
- android - Is there a way to retrieve values from the passed-in Modifier?
- css - 如何在 CSS 中将按钮放置在图像上?