PDO中執行SQL語句的三種方法
在PDO中,我們可以用三種方式來執行SQL語句,分別是exec()方法,query方法,以及預處理語句prepare()和execute()方法~
在上一篇文章《使用PDO建構子連接資料庫及DSN詳解》中,我們介紹如何使用建構子連接資料庫和DSN的詳解,那麼我們這篇文章跟大家介紹在PDO中執行SQL語句的三種方式,以下我們將一一介紹!
第一種方法:exec()方法
#exec()方法傳回執行SQL 語句後受影響的行數,其語法格式如下:
int PDO::exec(string statement)
參數satatement 是要執行的SQL語句,該方法傳回執行SQL 語句時受影響的行數,通常用於INSERT,DELETE和UPDATE語句中。下面我們用具體程式碼來講解,程式碼如下:
<?php header("Content-Type:text/html; charset=utf-8"); //设置页面的编码格式 $dbms = "mysql"; // 数据库的类型 $dbName ="php_cn"; //使用的数据库名称 $user = "root"; //使用的数据库用户名 $pwd = "root"; //使用的数据库密码 $host = "localhost"; //使用的主机名称 $dsn = "$dbms:host=$host;dbName=$dbName "; try{ //捕获异常 $pdo = new PDO($dsn,$user,$pwd); //实例化对象 $query="insert into user(username,password) values('php','523')";//需要执行的sql语句 $res=$pdo->exec($query);//执行添加语句并返回受影响行数 echo "数据添加成功,受影响行数为: ".$res; }catch(Exception $e){ die("Error!:".$e->getMessage().'<br>'); } ?>
輸出結果為:
#第二種方法:query()方法
query()方法用於傳回執行查詢後的結果集,函數的語法格式如下如下:
PDOStatement PDO::query(string statement)
參數satatement 是要執行的SQL語句,它回傳的是一個PODStatement物件!具體請看下面範例程式碼:
<?php header("Content-Type:text/html; charset=utf-8"); //设置页面的编码格式 $dbms = "mysql"; // 数据库的类型 $dbName ="php_cn"; //使用的数据库名称 $user = "root"; //使用的数据库用户名 $pwd = "root"; //使用的数据库密码 $host = "localhost"; //使用的主机名称 $dsn = "$dbms:host=$host;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>'); } ?>
輸出結果為:
注意:
1、query和exec都可以執行所有的sql語句,只是回傳值不同而已。
2、query可以實作所有exec的功能。
3、當把select語句應用到exec 時,總是回傳0
4、如果要看查詢的具體結果,可以透過foreach語句完成迴圈輸出
#第三種方法:預處理語句:prepare()語句與execute()語句
######預處理語句包含prepare()和execute()兩種方法。首先,透過prepare()方法做查詢準備工作,然後透過execute()方法執行查詢,也可以透過bindParam()方法來綁定參數給execute()方法,語法如下:###PDOStatement PDO::prepare(string statement[,array driver_options]) bool PDOStatement::execute([array input_parameters])###在PDO中透過預處理語句prepare()和execute()執行SQL查詢語句,使用迴圈把資料循環出來,下面我們具體看下範例程式碼:###
<?php header("Content-Type:text/html; charset=utf-8"); //设置页面的编码格式 $dbms = "mysql"; // 数据库的类型 $dbName ="php_cn"; //使用的数据库名称 $user = "root"; //使用的数据库用户名 $pwd = "root"; //使用的数据库密码 $host = "localhost"; //使用的主机名称 $dsn = "$dbms:host=$host;dbname=$dbName"; try{ $pdo=new PDO($dsn,$user,$pwd);//初始化一个PDO对象,就是创建了数据库连接对象$pdo $query="select * from user";//需要执行的sql语句 $res=$pdo->prepare($query);//准备查询语句 $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>'); }###輸出的結果是如下:#### ###########關於PDO的執行SQL 的三種方法,我們就介紹到這裡,是不是很簡單呢,小夥伴們可以再自己的本地測試一下,下一篇我們為大家繼續介紹PDO中取得結果集的方法,具體請閱讀《###PDO中取得結果集之fetch()方法詳解###》! ###
以上是PDO中執行SQL語句的三種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!