首頁  >  文章  >  後端開發  >  PDO中執行SQL語句的三種方法

PDO中執行SQL語句的三種方法

黄舟
黄舟原創
2017-04-28 17:38:019728瀏覽

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(&#39;php&#39;,&#39;523&#39;)";//需要执行的sql语句
    $res=$pdo->exec($query);//执行添加语句并返回受影响行数
    echo "数据添加成功,受影响行数为: ".$res;
}catch(Exception $e){
    die("Error!:".$e->getMessage().&#39;<br>&#39;);
}
?>

輸出結果為:

PDO中執行SQL語句的三種方法

#第二種方法: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().&#39;<br>&#39;);
}
?>

輸出結果為:

PDO中執行SQL語句的三種方法

注意:

1、query和exec都可以執行所有的sql語句,只是回傳值不同而已。

2、query可以實作所有exec的功能。

3、當把select語句應用到exec 時,總是回傳0

4、如果要看查詢的具體結果,可以透過foreach語句完成迴圈輸出

#第三種方法:預處理語句:prepare()語句與execute()語句PDO中執行SQL語句的三種方法

######預處理語句包含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[&#39;id&#39;]." ".$result[&#39;username&#39;]." ".$result[&#39;password&#39;].&#39;<br>&#39;;
    }
}catch(Exception $e){
    die("Error!:".$e->getMessage().&#39;<br>&#39;);
}
###輸出的結果是如下:#### ###########關於PDO的執行SQL 的三種方法,我們就介紹到這裡,是不是很簡單呢,小夥伴們可以再自己的本地測試一下,下一篇我們為大家繼續介紹PDO中取得結果集的方法,具體請閱讀《###PDO中取得結果集之fetch()方法詳解###》! ###

以上是PDO中執行SQL語句的三種方法的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn