使用mysql_fetch_object()函數取得結果集中一行作為物件(PHP操作MySQL資料庫的方法五)
使用mysql_fetch_object()函數同樣可以取得差選結果集中的數據,跟上一篇文章中介紹的函數是類似的,下面我們透過同一個實例的不同方法來了解這兩個函數在使用上的差異。
在上一篇文章《使用mysql_fetch_array()取得陣列結果集中的資訊(PHP操作MySQL資料庫的方法四)》中我們介紹了mysql_fetch_array()函數取得結果集,那今天我們繼續介紹取得結果集的函數mysql_fetch_object()函數。
首先我們看下函數的語法格式如下:
object mysql_fetch_object(resource result)
#注意:
這個擴充是在PHP 5.5.0過時,它是在PHP 7.0.0刪除。相反,mysqli擴充或pdo_mysql應使用。請參閱MySQL:選擇API指南和相關FAQ以獲取更多資訊。
mysql_fetch_object()函數和mysql_fetch_array()函數類似,只是有一點區別,前者返回的是一個物件而不是數組,該函數只透過字段名稱來存取數組,使用下面的格式獲取結果集中行的元素值。
$row->col_name //col_name为列名,$row代表结果集
例如,如果從某個資料表中擷取 id 和 name值,可以用$row->id 和 $row->name 存取資料列中的元素值。
注意:
本函數傳回的欄位也是區分大小寫,這是初學者學習程式設計最容易忽略的問題。
下面的實例透過mysql_fetch_object()函數取得結果集中的資料訊息,然後使用echo語句從結果集中以「結果集->列名」的形式輸出個欄位所對應的圖書資訊.
具體步驟如下:
1.建立一個PHP動態頁面,命名index.php,在index.php中新增一個表單,一個文字方塊以及一個提交按鈕,具體程式碼如下:
<html> <body> <!--上传文件表单--> <form method="post" action="" name = form1> <table> <tr> <td width="605" height="51" bgcolor="#CC99FF"> <p align="center">请输入查询内容 <input type="text" name="txt_book" id="txt_book" size="25"> <input type="submit" name="Submit" value="查询"> </p> </td> </tr> </table> </form> </body> </html>
2.連接到MySQL資料庫伺服器,選擇資料庫php_cn,設定資料庫的編碼格式為GB2312。具體程式碼如下:
<?php header("Content-Type:text/html; charset=utf-8"); $link = mysql_connect("localhost","root","root")or die("连接数据库失败".mysql_error()); mysql_select_db("php_cn",$link); mysql_query("set names gb2312"); //设置编码,防止发生乱发 ?>
3.使用mysql_fetch_object()函數取得查詢結果集中的數據,其傳回的值為一個物件:
<?php header("Content-Type:text/html; charset=utf-8"); $sql = mysql_query("select from tb_book"); //执行查询语句 $info = mysql_fetch_object($sql); //获取查询结果,返回值为数组 if($_POST['Submit']=="查询"){ // 判断按钮的值是否为查询 $txt_book = $_POST['txt_book']; //获取文本框提交的值 $sql = mysql_query("select * from tb_book where bookname like '%".trim($txt_book)."%'"); //执行模糊查询 $info = mysql_fetch_array($sql); // 获取查询结果 } ?>
4.使用do...while循環語句,「結果列->列名」的方式輸出結果集中的圖文訊息,程式碼如下:
<?php do { //do...while 循环 ?> <table> <tr align="left" bgcolor="#FFFFFF"> <td height="20" align="center"><?php echo $info->id; ?></td> <td height="20" align="center"><?php echo $info->bookname; ?></td> <td height="20" align="center"><?php echo $info->data; ?></td> <td height="20" align="center"><?php echo $info->price; ?></td> <td height="20" align="center"><?php echo $info->maker; ?></td> <td height="20" align="center"><?php echo $info->publisher; ?></td> </tr> </table> <?php }while($info = mysql_fetch_object($sql)); ?>
輸出結果為:
##該函數就介紹到這裡,下一篇我們將介紹另外一個函數,是逐行取得結果集中的每筆記錄,具體請閱讀《使用mysql_fetch_row()函數逐行取得結果集中的每筆記錄(PHP操作MySQL資料庫的方法六)》!
以上是使用mysql_fetch_object()函數取得結果集中一行作為物件(PHP操作MySQL資料庫的方法五)的詳細內容。更多資訊請關注PHP中文網其他相關文章!