在之前的文章中給大家?guī)砹恕禤HP中mysqli_select_db與mysqli_query函數(shù)的用法》,其中給大家詳細(xì)的介紹了應(yīng)該怎樣使用者兩個(gè)函數(shù)以及他們的主要作用,本篇我們繼續(xù)來看一下PHP中怎樣獲取SQL的查詢結(jié)果。希望對(duì)大家有幫助!
在上一篇文章中講到了要如何執(zhí)行一條SQL語句,也就是調(diào)用mysqli_query()
函數(shù),通過該函數(shù)我們已經(jīng)能夠查詢到數(shù)據(jù)庫的信息了,但是在我們的日常開發(fā)中還是需要對(duì)這一個(gè)結(jié)果進(jìn)行處理才能夠得到我們想要的信息。那接下來我們就看一下PHP中處理結(jié)果常用的幾個(gè)函數(shù)吧。
mysqli_fetch_row()
函數(shù)
mysqli_fetch_row() 函數(shù)可以從結(jié)果集中取得一行,并以索引數(shù)組的形式返回,其語法格式如下:
mysqli_result::fetch_row()
這是面向?qū)ο蟮膶懛ǎ嫦蜻^程的寫法如下:
mysqli_fetch_row(mysqli_result $result)
其中需要注意的是: mysqli_result
和 $result
表示為使用 mysqli_query() 函數(shù)獲取的結(jié)果集。
接下來我們通過示例來看一下mysqli_fetch_row() 函數(shù)的用法,示例如下:
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $mysql = new Mysqli($host, $username, $password, $dbname); if($mysql -> connect_errno){ die('數(shù)據(jù)庫連接失敗:'.$mysql->connect_errno); }else{ $sql = 'select name,sex,age from user'; // SQL 語句 $result = $mysql -> query($sql); // 執(zhí)行上面的 SQL 語句 $data = $result -> fetch_row(); $mysql -> close(); } echo '<pre>'; print_r($data); ?>
輸出結(jié)果:
上述示例中,通過mysqli_fetch_row() 函數(shù)成功查詢到了數(shù)據(jù)庫中的其中一行數(shù)據(jù),并且是以索引數(shù)組的方式返回的。那接下來我們看一下不同的返回形式。
mysqli_fetch_assoc()
函數(shù)
mysqli_fetch_assoc() 函數(shù)可以從結(jié)果集中取得一行,并以關(guān)聯(lián)數(shù)組的形式返回,該函數(shù)的語法格式如下:
mysqli_result::fetch_assoc()
這是其面向?qū)ο蟮恼Z法格式寫法,下面是起面向過程語法格式的寫法:
mysqli_fetch_assoc(mysqli_result $result)
其中需要注意的是: mysqli_result
和 $result
表示為使用 mysqli_query() 函數(shù)獲取的結(jié)果集。
接下來我們通過示例來看一下mysqli_fetch_assoc() 函數(shù)的使用,示例如下:
<?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); // 執(zhí)行 SQL 語句,并返回結(jié)果 $data = mysqli_fetch_assoc($result); // 從結(jié)果集中獲取一條數(shù)據(jù) mysqli_close($link); }else{ echo '數(shù)據(jù)庫連接失敗!'; } echo '<pre>'; print_r($data); ?>
輸出結(jié)果:
由上述示例,我們通過mysqli_fetch_assoc() 函數(shù)成功的獲取了數(shù)據(jù)庫中的一行信息并且通過關(guān)聯(lián)數(shù)組的方式返回。我們也可以通過函數(shù)來控住返回?cái)?shù)據(jù)的形式,讓它可以是索引數(shù)組也可以是關(guān)聯(lián)數(shù)組或者兩者兼顧的形式,這時(shí)候我們就要用到mysqli_fetch_array() 函數(shù)。
mysqli_fetch_array()
函數(shù)
mysqli_fetch_array() 函數(shù)可以從結(jié)果集中取得一行,并根據(jù)參數(shù)以關(guān)聯(lián)數(shù)組、索引數(shù)組或二者兼有的形式返回,它的語法格式如下:
mysqli_result::fetch_array([int $resulttype = MYSQLI_BOTH])
這是面向?qū)ο蟮恼Z法方式,下面是面向過程的語法方式:
mysqli_fetch_array(mysqli_result $result[, int $resulttype = MYSQLI_BOTH])
其中需要注意的是:
-
mysqli_result
和$result
表示為使用 mysqli_query() 函數(shù)獲取的結(jié)果集。 -
$resulttype
為可選參數(shù),它是一個(gè)常量,用來設(shè)定返回值的類型,它的取值可以是MYSQLI_ASSOC
、MYSQLI_NUM
或MYSQLI_BOTH
表示返回值的不同類型。
接下來我們通過示例來看一下mysqli_fetch_array() 函數(shù)的用法,示例如下:
<?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); // 執(zhí)行 SQL 語句,并返回結(jié)果 $data = mysqli_fetch_array($result, MYSQLI_ASSOC);// 從結(jié)果集中獲取所有數(shù)據(jù) mysqli_close($link); }else{ echo '數(shù)據(jù)庫連接失??!'; } echo '<pre>'; print_r($data); ?>
輸出結(jié)果:
上述示例中,我們選擇了通過關(guān)聯(lián)數(shù)組的形式來返回?cái)?shù)據(jù),我們通過mysqli_fetch_array() 函數(shù)可以選擇返回值的不同類型。
mysqli_fetch_all()
函數(shù)
mysqli_fetch_all() 函數(shù)可以獲取結(jié)果集中的所有數(shù)據(jù),并根據(jù)參數(shù)以關(guān)聯(lián)數(shù)組、索引數(shù)組或二者兼有的形式返回,它的語法格式如下:
mysqli_result::fetch_all([int $resulttype = MYSQLI_NUM])
這是面向?qū)ο蟮膶懛ǎ旅媸敲嫦蜻^程的寫法:
mysqli_fetch_all(mysqli_result $result [, int $resulttype = MYSQLI_NUM])
其中需要注意的是:與mysqli_fetch_array() 函數(shù)的語法相同
-
mysqli_resul
t和$result
表示為使用 mysqli_query() 函數(shù)獲取的結(jié)果集。 -
$resulttype
為可選參數(shù),它是一個(gè)常量,用來設(shè)定返回值的類型,它的取值可以是MYSQLI_ASSOC
、MYSQLI_NUM
或MYSQLI_BOTH
表示返回值的不同類型。
接下來通過示例來看一下mysqli_fetch_all() 函數(shù)的使用,示例如下:
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $mysql = new Mysqli($host, $username, $password, $dbname); if($mysql -> connect_errno){ die('數(shù)據(jù)庫連接失?。?#39;.$mysql->connect_errno); }else{ $sql = 'select name,sex,age from user'; // SQL 語句 $result = $mysql -> query($sql); // 執(zhí)行上面的 SQL 語句 $data = $result -> fetch_all(MYSQLI_ASSOC); $mysql -> close(); } echo '<pre>'; print_r($data); ?>
輸出結(jié)果:
上述示例中,便是通過mysqli_fetch_all() 函數(shù)選擇以關(guān)聯(lián)數(shù)組的形式返回所有的數(shù)據(jù)。
大家如果感興趣的話,可以點(diǎn)擊《PHP視頻教程》進(jìn)行