真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

phppdo查詢(xún)數(shù)據(jù) php數(shù)據(jù)庫(kù)查詢(xún)結(jié)果處理

php如何獲得 pdo 查詢(xún)結(jié)果 列名?

回調(diào)函數(shù)。

為容縣等地區(qū)用戶(hù)提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及容縣網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、容縣網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶(hù)提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶(hù)的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

1.快取一行

FetchColumn是為應(yīng)用程序取得一個(gè)僅包含單列的數(shù)據(jù),代碼如下:

$u = $db-query(“SELECT id FROM users WHERE login=

‘login’ AND password=‘password’”);

fetch(PDO::FETCH_COLUMN)

if ($u-fetchColumn()) { //返回一個(gè)字符串

//登錄成功

} else {

//驗(yàn)證失敗

}

?

2.取得一個(gè)標(biāo)準(zhǔn)對(duì)象

還可以將取得的一行作為一個(gè)標(biāo)準(zhǔn)類(lèi)stdClass的對(duì)象實(shí)例,其中列名=屬性名。

$res = $db-query(“SELECT * FROM foo”);

while ($obj = $res-fetch(PDO::FETCH_OBJ)) {

// $obj == instance of stdClass

}

?

3.存取為一個(gè)類(lèi)

PDO允許將結(jié)果保存為一個(gè)爛蘆類(lèi),例子如下:

$res = $db-基譽(yù)query(“SELECT * FROM foo”);

$res-setFetchMode(

PDO::FETCH_CLASS,

“className”,

array(‘optional’=‘Constructor Params’)

);

while ($obj = $res-fetch()) {

// $obj == instance of className

}

?

4.從一個(gè)類(lèi)取得常量

PDO允許查詢(xún)的結(jié)果可以被用來(lái)生成一個(gè)目的類(lèi)。

$res = $db-query(“SELECT * FROM foo”);

$res-setFetchMode(

PDO::FETCH_CLASS |

PDO::FETCH_CLASSTYPE

);

while ($obj = $res-fetch()) {

// $obj == instance of class who’s name is

// found in the value of the 1st column

}

?

5.存取為一個(gè)對(duì)象

PDO還允許獲取數(shù)據(jù)到一個(gè)已經(jīng)存在的對(duì)象。

$u = new userObject;

$res = $db-query(“SELECT * FROM users”);

$res-setFetchMode(PDO::FETCH_INTO, $u);

while ($res-搏歷段fetch()) {

// 取得的記錄集將放在$u這個(gè)對(duì)象變量中,在此顯示

}

?

6.存取為關(guān)聯(lián)數(shù)據(jù)

PDO實(shí)現(xiàn)了迭代器(Iteator)接口,允許一個(gè)方法實(shí)現(xiàn)迭代的功能。

$res = $db-query(

“SELECT * FROM users”,

PDO::FETCH_ASSOC

);

foreach ($res as $row) {

// $row是一個(gè)關(guān)聯(lián)數(shù)組,可以直接顯示,如$row['id']

}

?

7.fetchAll()方法

PDO也提供了和ADODB類(lèi)似的fetchAll()方法,它允許從一個(gè)結(jié)果集中取得數(shù)據(jù),然后放于關(guān)聯(lián)數(shù)組中。

$db-setAttribute(PDO::ATTR_CASE, PDO::CASE_UPPER);

$qry = “SELECT * FROM users”;

$res = $db-query($qry)-fetchAll(PDO::FETCH_ASSOC);

?

或者獲取到索引數(shù)組里:

$res = $db-query("SELECT * FROM foo");

$result_arr = $res-fetchAll();

print_r($result_arr);

?

數(shù)字索引數(shù)組比較浪費(fèi)資源,請(qǐng)盡量使用關(guān)聯(lián)數(shù)組,這樣可以在內(nèi)存中使用相當(dāng)密集的大型結(jié)果集。

相關(guān)說(shuō)明如下:

setAttribute()方法用于設(shè)置部分屬性,主要屬性有:PDO::ATTR_CASE、PDO::ATTR_ERRMODE等,這里需要設(shè)置的是PDO::ATTR_CASE,就是使用關(guān)聯(lián)索引獲取數(shù)據(jù)集時(shí),關(guān)聯(lián)索引是大寫(xiě)還是小寫(xiě),有如下幾個(gè)選擇:

PDO::CASE_LOWER——強(qiáng)制列名是小寫(xiě);

PDO::CASE_NATURAL——列名按照原始的方式;

PDO::CASE_UPPER——強(qiáng)制列名為大寫(xiě)。

我們使用setFetchMode方法來(lái)設(shè)置獲取結(jié)果集的返回值的數(shù)據(jù)類(lèi)型,類(lèi)型有:

PDO::FETCH_ASSOC——關(guān)聯(lián)數(shù)組形式;

PDO::FETCH_NUM——數(shù)字索引數(shù)組形式;

PDO::FETCH_BOTH——兩種數(shù)組形式都有,這是默認(rèn)的;

PDO::FETCH_OBJ——按照對(duì)象的形式,類(lèi)似于以前的 mysql_fetch_object()。

當(dāng)然,一般情況下,我們使用PDO::FETCH_ASSOC取得關(guān)聯(lián)數(shù)組。具體使用哪種類(lèi)型,應(yīng)按照自己的實(shí)際應(yīng)用選擇。

8.fetchColumn()方法

如果想獲取指定記錄里的一個(gè)字段結(jié)果,則可以使用PDOStatement::fetchColumn()。

$rs = $db-query("SELECT COUNT(*) FROM foo");

$col = $rs-fetchColumn();

echo $col;

?

一般使用fetchColumn()方法進(jìn)行count統(tǒng)計(jì),對(duì)某些只需要單字段的記錄可以很好地操作。

9.回調(diào)函數(shù)

PDO還規(guī)定在每一個(gè)fetch模式下,經(jīng)過(guò)處理后的結(jié)果中使用一個(gè)回調(diào)函數(shù)。

function draw_message($subject,$email) { … }

$res = $db-query(“SELECT * FROM msg”);

$res-fetchAll(PDO::FETCH_FUNC,“draw_message”);

?

10.直接查詢(xún)的問(wèn)題

直接使用Query查詢(xún)行每次都會(huì)直接提交給數(shù)據(jù)庫(kù),如果查詢(xún)較多,每次頻頻查詢(xún)將導(dǎo)致效率降低。

另外,在安全問(wèn)題上,沒(méi)有過(guò)濾一些特殊字符容易產(chǎn)生SQL注入。

11.過(guò)濾字符

下面我們來(lái)看看如何使用PDO進(jìn)行過(guò)濾引起SQL注入的方法,即過(guò)濾特殊字符。我們?cè)赑DO中使用quote()方法,使用例子如下:

$query = “SELECT * FROM users WHERE

login=“.$db-quote($_POST[‘login’]).”

AND

passwd=“.$db-quote($_POST[‘pass’]);

12.事務(wù)處理

PDO驅(qū)動(dòng)程序支持所有的事務(wù)數(shù)據(jù)庫(kù),并且PDO提供更簡(jiǎn)便的方法,如下:

$db-beginTransaction();

if ($db-exec($qry) === FALSE) {

$db-rollback();

}

$db-commit();

?

13.執(zhí)行一個(gè)批處理事務(wù)

在下面的示例中,假設(shè)我們?yōu)橐粋€(gè)新雇員創(chuàng)建一組條目,這個(gè)雇員有一個(gè)ID號(hào),即23。除了輸入這個(gè)雇員的基本數(shù)據(jù)外,還需要記錄雇員的薪水。分別完成兩個(gè)更新很簡(jiǎn)單,但通過(guò)將這兩個(gè)更新包括在beginTransaction()和commit()調(diào)用中,就可以保證在更改完成之前,其他人無(wú)法看到更改。如果發(fā)生了錯(cuò)誤,catch塊可以回滾事務(wù)開(kāi)始以來(lái)發(fā)生的所有更改,并打印出一條錯(cuò)誤消息。代碼內(nèi)容如下:

try {

$dbh = new PDO('odbc:SAMPLE', 'db2inst1', 'ibmdb2',

array(PDO_ATTR_PERSISTENT = true));

echo "Connected\n";

$dbh-setAttribute(PDO_ATTR_ERRMODE, PDO_ERRMODE_EXCEPTION);

$dbh-beginTransaction();

$dbh-exec("insert into staff (id, first, last)

values (23, 'Joe', 'Bloggs')");

$dbh-exec("insert into salarychange (id, amount, changedate)

values (23, 50000, NOW())");

$dbh-commit();

} catch (Exception $e) {

$dbh-rollBack();

echo "Failed: " . $e-getMessage();

}

?

php pdo 怎么獲取查詢(xún)出來(lái)的結(jié)果集

php使用PDO抽象層獲取查詢(xún)結(jié)果,主要有三種方式:

(1)PDO::query()查詢(xún)。

看下面這段php代碼:

?php //PDO::query()查詢(xún)

$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點(diǎn)點(diǎn)通')");

echo $res;

?

(3)PDO::prepare()預(yù)處理執(zhí)行查詢(xún)

?php //PDO::prepare()預(yù)處理執(zhí)行查詢(xún)

$res = $db-prepare("select * from user");

$res-execute();

while ($row = $res-fetchAll()) {

print_r($row);

}

?

setAttribute() 方法是設(shè)置屬性,常用參數(shù)如下:

PDO::CASE_LOWER -- 強(qiáng)制列名是小寫(xiě)悔亂

PDO::CASE_NATURAL -- 列名按照原始的方式

PDO::CASE_UPPER -- 強(qiáng)制列名為大寫(xiě)

setFetchMode方法來(lái)設(shè)置獲取結(jié)果集的返回值的類(lèi)型,常用參數(shù)如下:

PDO::FETCH_ASSOC -- 關(guān)聯(lián)數(shù)組形式

PDO::FETCH_NUM -- 數(shù)字索引數(shù)組形式

PDO::FETCH_BOTH -- 兩者數(shù)組形式都有,這是默認(rèn)的

PDO::FETCH_OBJ -- 按照對(duì)象的形式,類(lèi)似于以前的 mysql_fetch_object()

對(duì)上面總結(jié)如下:

查詢(xún)操作主要是PDO::query()、PDO::exec()、PDO::prepare()。

PDO-query() — 處理一條SQL語(yǔ)句,碧山檔并返回一個(gè)“PDOStatement”

PDO-exec() — 處理一條SQL語(yǔ)句,并返回所影響的條目數(shù)

PDO::prepare()主要是預(yù)處理操作,需要通唯辯過(guò)$rs-execute()來(lái)執(zhí)行預(yù)處理里面的SQL語(yǔ)句

最后介紹兩個(gè)常用的函數(shù):

(1)fetchColumn()獲取指定記錄里一個(gè)字段結(jié)果,默認(rèn)是第一個(gè)字段!

?php

$res = $db-query('select * from user');

//獲取指定記錄里第二個(gè)字段結(jié)果

$col = $res-fetchColumn(1);

echo $col;

?

(2)fetchAll(),從一個(gè)結(jié)果集中獲取數(shù)據(jù),然后存放在關(guān)聯(lián)數(shù)組中

?php

$res = $db-query('select * from user');

$res_arr =$res-fetchAll();

print_r($res_arr);

?

php 使用pdo鏈接數(shù)據(jù)庫(kù) 怎么查詢(xún)數(shù)據(jù)庫(kù)中的內(nèi)容。查詢(xún)出來(lái)之后要怎么顯示指定的內(nèi)容。例如,id號(hào),或者na

?php

header('content-type:text/html;charset=utf-8');

$dsn = 'mysql:dbname=m-test;host=localhost';

$user = 'root';//數(shù)據(jù)庫(kù)用戶(hù)名

$passwd = '';//數(shù)據(jù)庫(kù)密碼

try {

$pdo = new pdo($dsn, $user, $passwd);

$pdo-腔蔽緩query('set names utf8');//設(shè)置字符集

$result = $pdo-query('select * from user');//查詢(xún)數(shù)據(jù)庫(kù)

foreach ($result as $row) {

echo $row['id'];//輸伍模出 id 號(hào)

echo ':';

echo $row['name'并改];//輸出 name

echo 'br /';

}

} catch (pdoexception $e) {

echo $e-getmessage();//錯(cuò)誤信息

}

?


新聞名稱(chēng):phppdo查詢(xún)數(shù)據(jù) php數(shù)據(jù)庫(kù)查詢(xún)結(jié)果處理
新聞來(lái)源:http://weahome.cn/article/ddpicis.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部