Oli*_*ryn 5 php mysql oop mysqli mysql-num-rows
我已经构建了一个利用PHP内置MySQLi类功能的类,它旨在简化数据库交互.但是,使用OOP方法,在运行查询后,num_rows实例变量返回正确的行数时遇到困难.看看我班上的快照......
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 ...
}
Run Code Online (Sandbox Code Playgroud)
以下是一个示例用法:
$db = new Database();
$result = $db->query("SELECT * FROM `pages`"); //Contains at least one entry
echo $result->num_rows; //Returns "0"
exit;
Run Code Online (Sandbox Code Playgroud)
怎么这不准确?结果对象中的其他值是准确的,例如"field_count".任何帮助是极大的赞赏.
感谢您的时间.
可能的错误:http://www.php.net/manual/en/mysqli-result.num-rows.php#104630
代码来自上面的来源(Johan Abildskov):
$sql = "valid select statement that yields results";
if($result = mysqli-connection->query($sql, MYSQLI_USE_RESULT))
{
echo $result->num_rows; //zero
while($row = $result->fetch_row())
{
echo $result->num_rows; //incrementing by one each time
}
echo $result->num_rows; // Finally the total count
}
Run Code Online (Sandbox Code Playgroud)
也可以使用Procedural样式进行验证:
/* determine number of rows result set */
$row_cnt = mysqli_num_rows($result);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15823 次 |
| 最近记录: |