清空MySQLi准备好的语句结果

时间:2012-08-13 14:52:01

标签: php mysqli

我只是想在数据库中选择一个特定的行,但由于某种原因,我的结果集仍然是空的。但是,当我在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);

1 个答案:

答案 0 :(得分:2)

您需要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);