我已經構建了一個利用PHP內置MySQLi類的功能的類,它旨在簡化數據庫交互。但是,使用OOP方法時,使用num_rows實例變量返回查詢運行後的正確行數時遇到困難。看看我的課的快照...PHP MySQLi num_rows總是返回0
class Database {
//Connect to the database, all goes well ...
//Run a basic query on the database
public function query($query) {
//Run a query on the database an make sure is executed successfully
try {
//$this->connection->query uses MySQLi's built-in query method, not this one
if ($result = $this->connection->query($query, MYSQLI_USE_RESULT)) {
return $result;
} else {
$error = debug_backtrace();
throw new Exception(/* A long error message is thrown here */);
}
} catch (Exception $e) {
$this->connection->close();
die($e->getMessage());
}
}
//More methods, nothing of interest ...
}
下面是一個簡單的用法:
$db = new Database();
$result = $db->query("SELECT * FROM `pages`"); //Contains at least one entry
echo $result->num_rows; //Returns "0"
exit;
爲什麼這是不準確?結果對象中的其他值是準確的,例如「field_count」。任何幫助是極大的讚賞。
謝謝你的時間。
Gahh的......它是那麼容易。感謝您指出了這一點。 PHP網站的例子和我的示例查詢都使用了「MYSQLI_USE_RESULT」常量。我刪除了它,它就像一個魅力!感謝您的幫助,菲爾! –
只需使用MYSQLI_USE_RESULT注意: [** PHP mysql :: query **](http://es1.php.net/manual/en/mysqli.query.php)_如果您使用MYSQLI_USE_RESULT,則所有後續調用將會返回錯誤除非您調用[** mysqli_free_result()**](http://es1.php.net/manual/en/mysqli-result.free.php),否則命令不同步_ –