PHP的PDO基本操作

2021-10-03 02:18:03 字數 2959 閱讀 3666

php 5 及以上版本建議使用以下方式連線 mysql :

mysqli extension (「i」 意為 improved)

pdo (php data objects)

pdo 應用在 12 種不同資料庫中, mysqli 只針對 mysql 資料庫。

二者都支援預處理語句,可防止sql注入。

**示例:

<?php

$servername

="localhost"

;$username

="username"

;$password

="password"

;try

catch

(pdoexception $e

)?>

由於pdo支援多種型別的資料庫,因此我們將資料庫型別、位址、名稱封裝在資料來源dsn中

$dsn

=":host=;dbname="

;

new

pdo(資料來源, 使用者名稱,密碼)

;

$sql

="insert into 表名稱 values (值1, 值2,....)"

;$num

=$pdo

->

exec

($sql);

//使用exec語句執行sql語句,返回受影響的行數。

$insertid

=$pdo

->

lastinsertid()

;//pdo::lastinsertid — 返回最後插入行的id或序列值if(

$number

>0)

使用pdo::query()獲取結果集;

查詢結果放在pdostatement物件中;

查詢單條記錄:$result->fetch()

獲取所有記錄:$result->fetchall()

直接遍歷結果集:foreach($result as $row)

將結果集對映到物件再遍歷:類名與表名一致,屬性與欄位名一致,通過 _get() 魔術方法實現查詢

setfetchmode(pdo::fetch_assoc) 讀取模式: 從結果集中獲取以列名為索引的關聯陣列

pdostatement::fetch()解析結果集

pdostatement類中的fetch()方法可以將結果集中當前的記錄以某種方式返回,並將結果集指標移至下一行,當到達結果集末尾時返回false

$sql

="select 列名稱 from 表名稱"

$result

=$pdo

->

query

($sql);

if($result

&&$result

->

rowcount()

)

fetchall()方法與上乙個方法fetch()類似,但是該方法只需要呼叫一次就可以獲取結果集中的所有行,並賦給返回的陣列(二維)

$result

->

setfetchmode

(pdo::

fetch_assoc);

$rows

=$result

->

fetchall()

;//將結果集轉為二維陣列

foreach

($rows

as$row

)

也可跳過fetch解析,直接操作結果集

$result

->

setfetchmode

(pdo::

fetch_assoc);

$foreach

($result

as$row

)

pdo::fetch_class 返回乙個請求類的新例項,對映結果集中的列名到類中對應的屬性名

class

student

}$result

->

setfetchmode

(pdo::

fetch_class,』student')

;

將靜態sql語句與動態資料分離,在sql語句中使用佔位符"?「或」:欄位名"

pdo::prepare()準備預處理語句;

execute([真實替換資料])執行預處理語句

佔位符":欄位名"

$sql

="select 欄位名1=:欄位名1, 欄位名2=:欄位名2 from 表名稱"

;$stmt

=$pdo

->

prepare

($sql);

$stmt

->

bindparam

(":欄位名1"

,$value1);

$stmt

->

bindparam

(" :欄位名2 "

,$value2);

//給變數賦值

$stmt

->

execute()

;

佔位符"?"
$sql

="select ?, ? from 表名稱"

;$stmt

=$pdo

->

prepare

($sql);

$stmt

->

bindparam(1

,$value1);

$stmt

->

bindparam(2

,$value2);

//給變數賦值

$stmt

->

execute()

;

PHP中PDO的基本操作二

在介紹完pdo的基本操作之後,我們利用封裝連線和讀寫操作,實現對資料庫的讀寫操作。下面是封裝方法 function.php pdo物件初始化 function init 設定字符集 res pdo exec set names utf8 echo res if res false 返回pdo物件 r...

PDO基本操作

今天了解到了一些新的內容 pdo通過學習了解到了幾點。pdo是一種運算元據庫的方式。應為現在本人用的是mysqli。之前使用mysqli的時候,針對的是mysql。所以在使用的時候也沒發現有任何問題,在了解過pdo之後發現mysqli還有很多侷限性。pdo可以適用於多種資料庫,有編碼統一性 物件導向...

PDO基本操作

pdo是php資料物件 php data object 的縮寫。pdo有非常多的操作卻是mysqli擴充套件庫所不具備的優勢 pdo 支援12中資料驅動和引數繫結,而 mysqli 只支援 mysql。pdo 支援更高階的db特性操作,如 儲存過程的排程等,mysql原生庫是不支援的。pdo 是ph...