1、pdo的介紹
pdo(php資料物件) 是乙個輕量級的、具有相容介面的php資料連線拓展,是乙個php官方的pecl庫,隨php 5.1發布,需要php 5的物件導向支援,因而在更早的版本上無法使用。它所提供的資料接入抽象層,具有與具體資料庫型別無關的優勢,為它所支援的資料庫提供統一的操作介面。由於pdo是在底層實現的統一的資料庫操作介面,因而利用它能夠實現更高階的資料庫操作,比如儲存過程的排程等。要使用pdo運算元據庫,必須要有相應的dll檔案。
2、建立pdo的例項
// 第一種方式,通過**來配置
<?php
trycatch(pdoexception $e)
print_r($pdo);
?>
// 第二種方式,通過自定義檔案配置
<?php
trycatch(pdoexception $e)
print_r($pdo);
?>
// 第三種方式,通過php.ini檔案配置
// 在php.ini檔案中:[pdo]pdo.dsn.mysqlpdo = "mysql:host=localhost;dbname=test";
<?php
trycatch(pdoexception $e)
print_r($pdo);
?>
3、pdo運算元據庫
<?php
//1.連線資料庫
trycatch(pdoexception $e)
//2.執行query(查詢)返回的是乙個預處理物件
$sql = "select * from stu";
$stmt = $pdo->query($sql);// 記性查詢語句
$list = $stmt->fetchall(pdo::fetch_assoc);// 介紹資料記錄的方式
//3.解析資料(一次把所有的資料解析完)
foreach($list as $val)
//$sql = "insert into stu values(null,'oracle','w',44)";
//$sql = "delete from stu where id=11";
$sql = "update stu set name='js' where id=3";
$res = $pdo->exec($sql);// 直接執行sql語句
if($res)
//4.釋放資源
$stmt = null;
$pdo = null;
?>
4、錯誤資訊的處理
<?php
//預設是不提示的 需要用 errorcode() errorinfo()方法來獲取
trycatch(pdoexception $e)
$sql = "insert into stuu values(null,'jike','w',55)";
// 設定了異常模式才能捕獲異常
trycatch(pdoexception $e)
/* if($res)else */
?>
5、預處理
1)?號式的預處理句,一共有3種方式
<?php
//1.連線資料庫
trycatch(pdoexception $e)
//2.預處理的sql語句
$sql = "insert into stu(id,name,***,age) values(?,?,?,?)";
$stmt = $pdo->prepare($sql);
//3.對?號的引數繫結
//(第一種繫結方式)
$stmt->bindvalue(1,null);
$stmt->bindvalue(2,'test55');
$stmt->bindvalue(3,'w');
$stmt->bindvalue(4,22);
//第二種繫結方式
$stmt->bindparam(1,$id);
$stmt->bindparam(2,$name);
$stmt->bindparam(3,$***);
$stmt->bindparam(4,$age);
$id=null;
$name="test66";
$***="m";
$age=33;
//第三種繫結方式
$stmt->execute(array(null,'test77','22',55));
//4.執行
$stmt->execute($stmt
);echo $stmt->rowcount();
2)別名式的預處理句,一共有3種方式
<?php
//1.連線資料庫
trycatch(pdoexception $e)
//2.預處理的sql語句
$sql = "insert into stu(id,name,***,age) values(:id,:name,:***,:age)";
$stmt = $pdo->prepare($sql);
//3.對?號的引數繫結
//(第一種繫結方式)
$stmt->bindvalue("id",null);
$stmt->bindvalue("name",'ceshi1');
$stmt->bindvalue("***",'w');
$stmt->bindvalue("age",22);
//第二種繫結方式
$stmt->bindparam("id",$id);
$stmt->bindparam("name",$name);
$stmt->bindparam("***",$***);
$stmt->bindparam("age",$age);
$id=null;
$name="ceshi2";
$***="m";
$age=33;
//第三種繫結方式
$stmt->execute(array("id"=>null,"name"=>"ceshi3","***"=>"w","age"=>66));$stmt->execute($stmt
);
echo $stmt->rowcount();
採用預處理sql執行查詢,並採用繫結結果方式輸出
<?php
//1.連線資料庫
trycatch(pdoexception $e)
//2.預處理的sql語句
$sql = "select id,name,***,age from stu";
$stmt = $pdo->prepare($sql);
//3.執行
$stmt->execute();
$stmt->bindcolumn(1,$id);
$stmt->bindcolumn(2,$name);
$stmt->bindcolumn("***",$***);
$stmt->bindcolumn("age",$age);
// 採用與處理方式遍歷資料
while($row=$stmt->fetch(pdo::fetch_column)):::";}
// 普通方式遍歷資料
foreach($stmt as $row)
6、事務的處理
<?php
//採用預處理+事務處理執行sql操作
//1.連線資料庫
trycatch(pdoexception $e)
//2.執行資料操作
trycatch(pdoexception $e)
PDO綜合例項應用
dsn mysql host localhost dbname guestbook db new pdo dsn,root 123 連線資料庫 db query set names utf 8 affected db exec update lyb set content 用pdo修改記錄 wher...
PHP開啟PDO擴充套件
php pdo擴充套件 pdopdo是php資料物件 php object 的縮寫,pdo是乙個第三方類,預設以整合到php中,使用pdo可以輕鬆對接各種不同型別的資料庫,且操作方式和方法呼叫都基本一樣.pdo作用是統一各種資料庫的訪問介面.開啟pdo擴充套件 開啟mysql擴充套件為例 在php....
php開啟pdo擴充套件
在windows環境下php 5.1以上版本中,pdo和主要資料庫的驅動同php一起作為擴充套件發布,要啟用它們只需要簡單地編輯php.ini檔案.開啟php.ini配置檔案,找到extension php pdo.dll 配置php配置檔案,開啟相應擴充套件 和 extension php pdo...