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ù)庫(kù)類型  $dbName='admin';//使用的數(shù)據(jù)庫(kù)  $user='root';//數(shù)據(jù)庫(kù)連接用戶名  $pwd='password';//數(shù)據(jù)庫(kù)連接密碼  $host='localhost';//數(shù)據(jù)庫(kù)主機(jī)名  $dsn="$dbms:host=$host;port=3306;dbname=$dbName";  try{  $pdo=new?PDO($dsn,$user,$pwd);//初始化一個(gè)PDO對(duì)象,就是創(chuàng)建了數(shù)據(jù)庫(kù)連接對(duì)象$pdo  $query="insert?into?user(username,password)?values('admin','123456')";//需要執(zhí)行的sql語句  $res=$pdo-&gt;exec($query);//執(zhí)行添加語句并返回受影響行數(shù)  echo?"數(shù)據(jù)添加成功,受影響行數(shù)為:?".$res;  }catch(Exception?$e){  die("Error!:".$e-&gt;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-&gt;query($query);  print_r($res);  }catch(Exception?$e){  die("Error!:".$e-&gt;getMessage().'<br>');  }

運(yùn)行結(jié)果為:

PDOStatement  ?Object?(?[queryString]?=&gt;?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.php.cn/

query()與exec()

query可以實(shí)現(xiàn)所有exec的功能

例如:

$dbms='mysql';//數(shù)據(jù)庫(kù)類型  $dbName='admin';//使用的數(shù)據(jù)庫(kù)  $user='root';//數(shù)據(jù)庫(kù)連接用戶名  $pwd='905407339';//數(shù)據(jù)庫(kù)連接密碼  $host='localhost';//數(shù)據(jù)庫(kù)主機(jī)名  $dsn="$dbms:host=$host;port=3306;dbname=$dbName";  try{  $pdo=new?PDO($dsn,$user,$pwd);//初始化一個(gè)PDO對(duì)象,就是創(chuàng)建了數(shù)據(jù)庫(kù)連接對(duì)象$pdo  $query="insert?into?user(username,password)?values('admin','123456')";//需要執(zhí)行的sql語句  $res=$pdo-&gt;query($query);//執(zhí)行添加語句并返回受影響行數(shù)  echo?"數(shù)據(jù)添加成功,受影響行數(shù)為:?".$res-&gt;rowCount();  }catch(Exception?$e){  die("Error!:".$e-&gt;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ù)庫(kù)類型  $dbName='admin';//使用的數(shù)據(jù)庫(kù)  $user='root';//數(shù)據(jù)庫(kù)連接用戶名  $pwd='905407339';//數(shù)據(jù)庫(kù)連接密碼  $host='localhost';//數(shù)據(jù)庫(kù)主機(jī)名  $dsn="$dbms:host=$host;port=3306;dbname=$dbName";  try{  ????$pdo=new?PDO($dsn,$user,$pwd);//初始化一個(gè)PDO對(duì)象,就是創(chuàng)建了數(shù)據(jù)庫(kù)連接對(duì)象$pdo  ????$query="select?*?from?user";//需要執(zhí)行的sql語句  ????$res=$pdo-&gt;prepare($query);//準(zhǔn)備查詢語句  ????$res-&gt;execute();  ????while($result=$res-&gt;fetch(PDO::FETCH_ASSOC)){  ????????echo?$result['id']."?".$result['username']."?".$result['password'].'<br>';  ????}  }catch(Exception?$e){  ????die("Error!:".$e-&gt;getMessage().'<br>');  }

運(yùn)行結(jié)果為:

1  ?107lab?e10adc3949ba59abbe56e057f20f883e  4?admin?123456  5?admin?123456

關(guān)于PDO中獲取結(jié)果集的方法正在創(chuàng)作階段,敬請(qǐng)期待。

?以上就是PDO中執(zhí)行SQL語句的內(nèi)容,更多相關(guān)內(nèi)容請(qǐng)關(guān)注PHP中文網(wǎng)(www.php.cn)!

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊14 分享