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


在PDO中,我們可以使用三種方式來執行SQL語句,分別是 exec()方法,query方法,以及預處理語句prepare()和execute()方法~大理石構件來圖加工

在上一篇文章《使用PDO構造函數連接數據庫及DSN詳解》中,我們介紹了如何使用構造函數連接數據庫和DSN的詳解,那么我們這篇文章跟大家介紹在PDO中執行SQL語句的三種方式,下面我們將一一介紹!

第一種方法:exec()方法

exec()方法返回執行SQL 語句后受影響的行數,其語法格式如下:

1

int PDO::exec(string statement)

參數 satatement 是要執行的SQL語句,該方法返回執行SQL 語句時受影響的行數,通常用於 INSERT,DELETE和UPDATE語句中。下面我們用具體代碼講解,代碼如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

<?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()方法用於返回執行查詢后的結果集,該函數的語法格式如下如下:

1

PDOStatement PDO::query(string statement)

參數 satatement 是要執行的 SQL語句,它返回的是一個PODStatement對象!具體請看下面示例代碼:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

<?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()方法,語法如下:

1

2

PDOStatement PDO::prepare(string statement[,array driver_options])

bool PDOStatement::execute([array input_parameters])

在PDO中通過預處理語句prepare()和execute()執行SQL查詢語句,使用循環把數據循環出來,下面我們具體看下示例代碼:https://www.bzddrive.com/news/1332.html

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

<?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>');

}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM