空的 MySQLi 预准备语句结果


Empty MySQLi prepared statement results

我只是想在数据库中选择一个特定的行,但由于某种原因,我的结果集一直显示为空。但是,当我在 HeidiSQL 中运行查询时,我得到结果。

我被难住了。我没有看到我的代码有什么特别的问题,我已经尝试回显$mysqli->error,但我没有任何错误。我还在代码中添加了ini_set('display_errors', 'On'); error_reporting(E_ALL);

$id =$_GET['sysid'];
$system_info = $mysqli->prepare("SELECT * FROM systems WHERE systems.id = ?");
$system_info->bind_param("i", $id);
$system_info->execute();
$system_info->store_result();
$system_info->bind_result($system_id, $system_name, $system_img);
您需要

fetch结果。

$id = $_GET['sysid'];
$system_info = $mysqli->prepare("SELECT * FROM systems WHERE systems.id = ?");
$system_info->bind_param("i", $id);
$system_info->execute();
$system_info->bind_result($system_id, $system_name, $system_img);
$system_info->fetch();

然后你可以使用 $system_id$system_name$system_img

store_result将返回一个mysqli_result对象;它忽略bind_result

$id = $_GET['sysid'];
$system_info = $mysqli->prepare("SELECT * FROM systems WHERE systems.id = ?");
$system_info->bind_param("i", $id);
$system_info->execute();
$result = $system_info->store_result();
list($system_id, $system_name, $system_img) = $result->fetch_array(MYSQLI_NUM);