//1.連接數(shù)據(jù)庫
創(chuàng)新互聯(lián)公司是一家業(yè)務范圍包括IDC托管業(yè)務,網(wǎng)絡(luò)空間、主機租用、主機托管,四川、重慶、廣東電信服務器租用,聯(lián)通服務器托管,成都網(wǎng)通服務器托管,成都服務器租用,業(yè)務范圍遍及中國大陸、港澳臺以及歐美等多個國家及地區(qū)的互聯(lián)網(wǎng)數(shù)據(jù)服務公司。
$link?=?@mysql_connect('localhost','root','123456');
//2.判斷是否連接成功
if(!$link)?exit('數(shù)據(jù)庫連接失敗');
//3.選擇數(shù)據(jù)庫
mysql_select_db('mydatabase');
//4.設(shè)置字符集??utf8
mysql_set_charset('utf8');
//5.準備一個SQL語句
$sql?=?'select?*?from?user';
//6.發(fā)送SQL語句
$result?=?mysql_query($sql);
//7.判斷并處理返回結(jié)果
if($result){
while($row?=?mysql_fetch_array($result)){
$list[]?=?$row;
}
echo?"pre";
print_r($list);
echo?"/pre";
}
//8.釋放資源
mysql_free_result($result);???//查詢操作才需要釋放結(jié)果集
mysql_close();
1、用navicat新建一個數(shù)據(jù)庫database1。
2、在database1數(shù)據(jù)庫中新建一個表table2。
3、在table2中添加新的數(shù)據(jù),新建一個名稱為mysql_query的數(shù)據(jù)庫。
4、在頁面中用mysql_connect 函數(shù)與數(shù)據(jù)庫建立連接。
5、用mysql_select_db函數(shù)選擇要查詢的數(shù)據(jù)庫。
6、添加一個查詢 table2表的查詢語句“$sql=select * from table2“。
7、將查詢語句$sql添加到查詢數(shù)據(jù)庫函數(shù)mysql_query中,返回值賦值給變量query。
8、最后將mysql_query。php文件在瀏覽器中打開,查看查詢到數(shù)據(jù)庫中的內(nèi)容的結(jié)果。
在使用php session進行數(shù)據(jù)查詢時主要有3中方法。第一種是使用函數(shù)【mysql_connect()】建立和MYSQL數(shù)據(jù)庫的連接。mysql_connect()是用來建立和MYSQL數(shù)據(jù)庫的連接,一共有5個參數(shù),一般情況下只使用前3個參數(shù),分別是MySQL服務器地址、用戶名以及密碼。第二種是使用函數(shù)【mysql_select_db()】指定要操作的數(shù)據(jù)庫。mysql_select_db()是用來指定要操作的數(shù)據(jù)庫。要是需要操作的數(shù)據(jù)庫還沒有創(chuàng)建,則需要創(chuàng)建數(shù)據(jù)庫,然后再創(chuàng)建數(shù)據(jù)庫中的表。第三種是使用函數(shù)【mysql_query()】查詢指令。mysql_query()是查詢指令的專用函數(shù),所有的SQL語句都通過它執(zhí)行,并返回結(jié)果集。一般情況下這三種方法是最適用的,希望可以解決你的問題。
首先看傳入的參數(shù):第一個是resource類型的結(jié)果集,是mysql_query($sql)的返回值,第二個則是傳入SQL語句。參數(shù)類型不一樣。
再看函數(shù)體:mysql_fetch_assoc($result)接受的傳入類型是resource類型,他有兩種返回值的可能,一種是如果結(jié)果集存在行記錄,則返回一行記錄,是關(guān)聯(lián)數(shù)組類型的。如果沒有行記錄,即查詢結(jié)果為空,則返回布爾類型的false。
看第一種方法,while()循環(huán)是當判斷條件為true時執(zhí)行,就是如果mysql_fetch_assoc($result)沒有返回false,即有數(shù)據(jù)庫查詢后有行記錄,就會把在循環(huán)體中把返回值$rs添加到數(shù)組$row中,$row將會是二維數(shù)組,鍵是int類型的0,1,2.。。。
而你說的第二個getOne()將只能返回一行查詢記錄,如果沒有記錄,將會返回false。
你可以用print_r()打印出getOne和getAll()的結(jié)果。
比如數(shù)據(jù)庫存在是id=1,name=aa ;id=2,name=bb兩條記錄,則getAll()打印出的是
Array([0]=Array('id'=1,'name'='aa'),[1]=Array('id'=2,'name'='bb'))
getOne打印出的是Array('id'=1,'name'='aa')[我初學PHP,不排除分析錯誤]
從查詢結(jié)果取值,需要遍歷結(jié)果集!示例如下:
$rs?=?mysql_query("select?*?from?www_liu?where?xx='$xx'?and?yy='$yy'");
echo?"查詢信息如下:br/";
while($row?=?mysql_fetch_array($rs))
{
echo?$row['字段2']?.?"====="?.?$row['字段三'];
echo?"br?/";
}
//關(guān)閉數(shù)據(jù)庫連接
//mysql_close();
php使用PDO抽象層獲取查詢結(jié)果,主要有三種方式:
(1)PDO::query()查詢。
看下面這段php代碼:
?php //PDO::query()查詢
$res = $db-query('select * from user');
$res-setFetchMode(PDO::FETCH_NUM); //數(shù)字索引方式
while ($row = $res-fetch()){
print_r($row);
}
?
(2)PDO-exec()處理sql
?php //PDO-exec()處理sql
$db-setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$res = $db-exec("insert into user(id,name) values('','php點點通')");
echo $res;
?
(3)PDO::prepare()預處理執(zhí)行查詢
?php //PDO::prepare()預處理執(zhí)行查詢
$res = $db-prepare("select * from user");
$res-execute();
while ($row = $res-fetchAll()) {
print_r($row);
}
?
setAttribute() 方法是設(shè)置屬性,常用參數(shù)如下:
PDO::CASE_LOWER -- 強制列名是小寫
PDO::CASE_NATURAL -- 列名按照原始的方式
PDO::CASE_UPPER -- 強制列名為大寫
setFetchMode方法來設(shè)置獲取結(jié)果集的返回值的類型,常用參數(shù)如下:
PDO::FETCH_ASSOC -- 關(guān)聯(lián)數(shù)組形式
PDO::FETCH_NUM -- 數(shù)字索引數(shù)組形式
PDO::FETCH_BOTH -- 兩者數(shù)組形式都有,這是默認的
PDO::FETCH_OBJ -- 按照對象的形式,類似于以前的 mysql_fetch_object()
對上面總結(jié)如下:
查詢操作主要是PDO::query()、PDO::exec()、PDO::prepare()。
PDO-query() — 處理一條SQL語句,并返回一個“PDOStatement”
PDO-exec() — 處理一條SQL語句,并返回所影響的條目數(shù)
PDO::prepare()主要是預處理操作,需要通過$rs-execute()來執(zhí)行預處理里面的SQL語句
最后介紹兩個常用的函數(shù):
(1)fetchColumn()獲取指定記錄里一個字段結(jié)果,默認是第一個字段!
?php
$res = $db-query('select * from user');
//獲取指定記錄里第二個字段結(jié)果
$col = $res-fetchColumn(1);
echo $col;
?
(2)fetchAll(),從一個結(jié)果集中獲取數(shù)據(jù),然后存放在關(guān)聯(lián)數(shù)組中
?php
$res = $db-query('select * from user');
$res_arr =$res-fetchAll();
print_r($res_arr);
?
文章名稱:php查詢數(shù)據(jù)庫結(jié)果集,php數(shù)據(jù)庫查詢系統(tǒng)
標題鏈接:http://chinadenli.net/article44/hdddee.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供動態(tài)網(wǎng)站、搜索引擎優(yōu)化、服務器托管、用戶體驗、外貿(mào)建站、標簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)