在之前的文章中為大家帶來了《PHP資料庫學習之怎樣一次執行多條SQL指令? 》,其中詳細介紹了PHP中想要一次執行多條SQL指令的相關知識,本篇我們來看看PHP中怎樣取得查詢結果的行數,希望對大家有幫助!
在先前的學習中,我們已經了解怎樣取得SQL的查詢結果,怎麼一次執行多條SQL語句,在PHP中是有函數能夠取得查詢結果的行數的,也就是查詢到的結果集中有多少條數據,這個函數就是 mysqli_num_rows()
函數,那麼接下來我們就來看mysqli_num_rows()
函數的相關知識吧。
<strong><span style="font-size: 20px;">mysqli_num_rows()</span></strong>
函數
在PHP 中,想要取得由SELECT 語句查詢到的結果集中有多少條資料的話,則需要使用mysqli_num_rows() 函數來實作。首先我們來看一下該函數的語法結構:
$mysqli_result -> num_rows;
這是物件導向寫法的語法,以下是過程導向的語法:
mysqli_num_rows(mysqli_result $result)
其中我們需要注意的是:
$mysqli_result
和 $result
為使用mysqli_query() 函數傳回的結果集。
mysqli_num_rows()
函數只對SELECT 語句有效,如果傳回的行數大於 PHP_INI_MAX
#,則將行數以字串的形式返回。
接下來我們透過範例來看mysqli_num_rows() 函數的用法吧
範例如下:
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $mysql = new Mysqli($host, $username, $password, $dbname); if($mysql -> connect_errno){ die('数据库连接失败:'.$mysql->connect_errno); }else{ $sql = 'select name,sex,age from user'; // SQL 语句 $result = $mysql -> query($sql); // 执行上面的 SQL 语句 $num = $result -> num_rows; // 获取查询结果的行数 $mysql -> close(); } echo '一共查询到 '.$num.' 条记录。'; ?>
輸出結果:
上述範例是透過物件導向的寫法,下面看一下面向過程的寫法:
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $link = @mysqli_connect($host, $username, $password, $dbname); if($link){ $sql = 'select name,sex,age from user'; // SQL 语句 $result = mysqli_query($link, $sql); // 执行 SQL 语句,并返回结果 $num = mysqli_num_rows($result); // 获取查询结果的行数 mysqli_close($link); }else{ echo '数据库连接失败!'; } echo '一共查询到 '.$num.' 条记录。'; ?>
其輸出結果與上述結果相同,上述事例中透過mysqli_num_rows() 函數完成了查詢資料集有多少資料的結果。
下面給大家補充一下,之前我們學習查詢結果的時候輸出的結果都是索引數組或者是關聯數組的形式返回的結果,下面給大家補充一下通過對象的形式返回,那就要透過mysqli_fetch_object() 函數來實現。
<strong><span style="font-size: 20px;">mysqli_fetch_object()</span></strong>
函數
mysqli_fetch_object ()
函數能夠從結果集中取得一行,並以物件的形式返回,它的語法格式如下:
mysqli_result::fetch_object([string $class_name = "stdClass"[, array $params]])
這是物件導向的寫法,下面我們看一下過程導向的寫法語法格式如下:
mysqli_fetch_object(mysqli_result $result[, string $class_name = "stdClass"[, array $params]])
其中需要注意的是:
mysqli_result
表示mysqli_query() 函數取得的結果集;
#$class_name
表示為可選參數,用來規定實例化的類別名稱,設定屬性並傳回;
$ params
表示為可選參數,用來規定一個傳給$classname 的建構子的可選參數陣列。
接下來我們透過範例來看mysqli_fetch_object() 函數傳回結果集中的目前行,並輸出每個欄位的值。
範例如下:
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $mysql = new Mysqli($host, $username, $password, $dbname); if($mysql -> connect_errno){ die('数据库连接失败:'.$mysql->connect_errno); }else{ $sql = 'select name,sex,age from user'; // SQL 语句 $result = $mysql -> query($sql); // 执行上面的 SQL 语句 if($result){ while($obj = $result -> fetch_object()){ printf('姓名:%s,性别:%s,年龄:%s <br>', $obj->name,$obj->sex,$obj->age); } } $mysql -> close(); } ?>
輸出結果:
由此我們便透過mysqli_fetch_object() 函數可以從結果集中取得一行,並以物件的形式傳回。
大家如果有興趣的話,可以點選《PHP影片教學》進行更多關於PHP知識的學習。
以上是PHP資料庫學習如何取得查詢結果的行數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!