2013-12-13 55 views
0

我試圖從字面query調用準備語句轉換。庫MySQLi預處理語句不返回任何

我在我的類中的下列功能:

public function read ($identifier) { 
    $stmt = static::$mysqli->prepare('SELECT * FROM `table` WHERE `id` = ?;'); 
    $stmt->bind_param('i', $identifier); 
    $stmt->execute(); 

    var_dump($stmt->num_rows); 
} 

我從phpMyAdmin的知道,有一個在數據庫ID 1行,但如果我叫read(1);num_rows爲0

但是,如果我使用這個邏輯:

public function read ($identifier) { 
    $result = static::$mysqli->query('SELECT * FROM `table` WHERE `id` = '.(int) $identifier.';'); 
    var_dump($result->num_rows); 
} 

我得到1代替。在​​通話後

回答

2

嘗試呼叫$stmt->store_result();
結果尚未存儲在內存中執行後,你將不得不提取所有行或致電store_result()num_rows變量,以顯示受影響的行的實際數量。

相關問題