2012-08-13 120 views
0

我只是想在數據庫中選擇一個特定的行,但是由於某種原因,我的結果集一直空着。但是,當我在HeidiSQL中運行查詢時,我得到了結果。MySQLi準備了空的語句結果

我很難過。我沒有看到我的代碼有什麼特別的錯誤,並且我試着回顯$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); 

回答

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); 
+0

我的天啊。我想我需要休息一下。 – actaeon 2012-08-13 15:00:00

+0

@actaeon:呵呵:-) – 2012-08-13 15:01:15