预处理语句 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);
}