php使用PDO執(zhí)行SQL語句的方法分析
本文實(shí)例講述了php使用PDO執(zhí)行SQL語句的方法。分享給大家供大家參考,具體如下:
exec()方法
exec()方法返回執(zhí)行后受影響行數(shù),語法如下:
int PDO::exec(string statement)
參數(shù)statement是要執(zhí)行的SQL語句。該方法返回執(zhí)行查詢時(shí)受影響的行數(shù),通常情況下用于INSERT,DELETE和UPDATE語句中。
例如:
$dbms='mysql';//數(shù)據(jù)庫類型 $dbName='admin';//使用的數(shù)據(jù)庫 $user='root';//數(shù)據(jù)庫連接用戶名 $pwd='password';//數(shù)據(jù)庫連接密碼 $host='localhost';//數(shù)據(jù)庫主機(jī)名 $dsn="$dbms:host=$host;port=3306;dbname=$dbName"; try{ $pdo=new PDO($dsn,$user,$pwd);//初始化一個(gè)PDO對(duì)象,就是創(chuàng)建了數(shù)據(jù)庫連接對(duì)象$pdo $query="insert into user(username,password) values('admin','123456')";//需要執(zhí)行的sql語句 $res=$pdo->exec($query);//執(zhí)行添加語句并返回受影響行數(shù) echo "數(shù)據(jù)添加成功,受影響行數(shù)為: ".$res; }catch(Exception $e){ die("Error!:".$e->getMessage().'<br>'); }
運(yùn)行結(jié)果為:
數(shù)據(jù)添加成功,受影響行數(shù)為: 1
query()方法
query()方法用于返回執(zhí)行查詢后的結(jié)果集,語法如下
PDOStatement PDO::query(string statement)
參數(shù)statement 是要執(zhí)行的SQL語句。它返回的是一個(gè)PDOStatement對(duì)象
例如:
$dbms='mysql'; $dbName='admin'; $user='root'; $pwd='905407339'; $host='localhost'; $dsn="$dbms:host=$host;port=3306;dbname=$dbName"; try{ $pdo=new PDO($dsn,$user,$pwd); $query="select * from user"; $res=$pdo->query($query); print_r($res); }catch(Exception $e){ die("Error!:".$e->getMessage().'<br>'); }
運(yùn)行結(jié)果為:
PDOStatement Object ( [queryString] => select * from user )
如果要看查詢的具體結(jié)果,可以通過foreach語句完成循環(huán)輸出
例如:
foreach($res as $val){ echo $val['username']."----".$val['password'].'<br>'; }
運(yùn)行結(jié)果為:
107lab----e10adc3949ba59abbe56e057f20f883e admin----123456
說明:如果要查看foreach的詳細(xì)用法請(qǐng)查看:http://www.dbjr.com.cn/article/68786.htm
query()與exec()
query可以實(shí)現(xiàn)所有exec的功能
例如:
$dbms='mysql';//數(shù)據(jù)庫類型 $dbName='admin';//使用的數(shù)據(jù)庫 $user='root';//數(shù)據(jù)庫連接用戶名 $pwd='905407339';//數(shù)據(jù)庫連接密碼 $host='localhost';//數(shù)據(jù)庫主機(jī)名 $dsn="$dbms:host=$host;port=3306;dbname=$dbName"; try{ $pdo=new PDO($dsn,$user,$pwd);//初始化一個(gè)PDO對(duì)象,就是創(chuàng)建了數(shù)據(jù)庫連接對(duì)象$pdo $query="insert into user(username,password) values('admin','123456')";//需要執(zhí)行的sql語句 $res=$pdo->query($query);//執(zhí)行添加語句并返回受影響行數(shù) echo "數(shù)據(jù)添加成功,受影響行數(shù)為: ".$res->rowCount(); }catch(Exception $e){ die("Error!:".$e->getMessage().'<br>'); }
運(yùn)行結(jié)果為:
數(shù)據(jù)添加成功,受影響行數(shù)為: 1
注:
1、query和exec都可以執(zhí)行所有的sql語句,只是返回值不同而已。
2、query可以實(shí)現(xiàn)所有exec的功能。
3、當(dāng)把select語句應(yīng)用到 exec 時(shí),總是返回 0
預(yù)處理語句----prepare()語句和execute()語句
預(yù)處理語句包括prepare()和execute()兩種方法。首先,通過prepare()方法做查詢準(zhǔn)備工作,然后通過execute()方法執(zhí)行查詢,并且還可以通過bindParam()方法來綁定參數(shù)給execute()方法,語法如下:
PDOStatement PDO::prepare(string statement[,array driver_options])
bool PDOStatement::execute([array input_parameters])
例如:
在PDO中通過預(yù)處理語句prepare()和execute()執(zhí)行SQL查詢語句,并且應(yīng)用while()語句和fetch()方法完成數(shù)據(jù)的循環(huán)輸出
$dbms='mysql';//數(shù)據(jù)庫類型 $dbName='admin';//使用的數(shù)據(jù)庫 $user='root';//數(shù)據(jù)庫連接用戶名 $pwd='905407339';//數(shù)據(jù)庫連接密碼 $host='localhost';//數(shù)據(jù)庫主機(jī)名 $dsn="$dbms:host=$host;port=3306;dbname=$dbName"; try{ $pdo=new PDO($dsn,$user,$pwd);//初始化一個(gè)PDO對(duì)象,就是創(chuàng)建了數(shù)據(jù)庫連接對(duì)象$pdo $query="select * from user";//需要執(zhí)行的sql語句 $res=$pdo->prepare($query);//準(zhǔn)備查詢語句 $res->execute(); while($result=$res->fetch(PDO::FETCH_ASSOC)){ echo $result['id']." ".$result['username']." ".$result['password'].'<br>'; } }catch(Exception $e){ die("Error!:".$e->getMessage().'<br>'); }
運(yùn)行結(jié)果為:
1 107lab e10adc3949ba59abbe56e057f20f883e 4 admin 123456 5 admin 123456
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《PHP基于pdo操作數(shù)據(jù)庫技巧總結(jié)》、《php+Oracle數(shù)據(jù)庫程序設(shè)計(jì)技巧總結(jié)》、《PHP+MongoDB數(shù)據(jù)庫操作技巧大全》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫操作入門教程》及《php常見數(shù)據(jù)庫操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
相關(guān)文章
PHP操作Postgresql封裝類與應(yīng)用完整實(shí)例
這篇文章主要介紹了PHP操作Postgresql封裝類,結(jié)合實(shí)例形式分析了php針對(duì)Postgresql數(shù)據(jù)庫常見的連接、查詢、統(tǒng)計(jì)等操作封裝技巧與使用方法,需要的朋友可以參考下2018-04-04PHP連接SQL server數(shù)據(jù)庫測(cè)試腳本運(yùn)行實(shí)例
這篇文章主要介紹了PHP連接SQL server數(shù)據(jù)庫測(cè)試腳本運(yùn)行實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08php數(shù)組函數(shù)序列之a(chǎn)sort() - 對(duì)數(shù)組的元素值進(jìn)行升序排序,保持索引關(guān)系
asort() 函數(shù)對(duì)數(shù)組進(jìn)行排序并保持索引關(guān)系。主要用于對(duì)那些單元順序很重要的結(jié)合數(shù)組進(jìn)行排序??蛇x的第二個(gè)參數(shù)包含了附加的排序標(biāo)識(shí)2011-11-11php實(shí)現(xiàn)將HTML頁面轉(zhuǎn)換成word并且保存的方法
這篇文章主要介紹了php實(shí)現(xiàn)將HTML頁面轉(zhuǎn)換成word并且保存的方法,結(jié)合實(shí)例形式分析了PHPWord工具的功能與使用方法,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10列舉PHP的Yii 2框架的開發(fā)優(yōu)勢(shì)
這篇文章主要介紹了PHP的Yii 2框架的開發(fā)優(yōu)勢(shì),正是因?yàn)橛泻芏嘈屡d框架的涌現(xiàn)才得以維持PHP的生命力,需要的朋友可以參考下2015-07-07PHP警告Cannot use a scalar value as an array的解決方法
PHP警告Cannot use a scalar value as an array的解決方法,需要的朋友可以參考下。2012-01-01