一、PDO的概念
PDO其實就是一個數據庫的抽象層,使用PDO編程可以方便的在之后的實際運營中隨時更改數據庫而不用變更源代碼。PDO的位置如下圖所示:
二、PDO的開啟
PDO需要使用php 5.1 之后的版本。
查看是否開啟pdo功能需要新建一個php文件,使用phpinfo函數查詢
如圖,PDO驅動和pdo_mysql擴展均開啟(enabled)
linux:
我的系統是ubuntu14.04.3,php版本是PHP 5.5.9-1ubuntu4.14 ,在我這里pdo擴展默認是開著的(在后期的php版本中pdo已經是核心功能,不需要再自行安裝了,網上的教程都是針對之前的php版本的),而且php的mysql擴展也是默認開著的,不知道這是不是因為我用的是ubuntu版的php。如果mysql擴展沒開的話也只需執行sudo apt-get install php5-mysql 安裝驅動即可,別的數據庫也是這樣操作。
win:在php.ini文件中,把以下兩行注釋去掉
extension=php_pdo.dll //PDO驅動程序共享擴展必須有 (windows)
extension=php_pdo_mysql.dll //html' target='_blank'>MySQL擴展
如果要開啟別的數據庫擴展去掉相應的注釋即可
三、PDO的使用
3.1 PDO對象初始化
PDO的構造函數如下:
PDO __construct( string dsn
[, string username
[, string password
[, array driver_options]]] );
dsn數據庫連接信息如“mysql:host=localhost;dbname=庫名”
下面舉個栗子:
$pdo = new PDO('mysql:host=localhost;dbname=phptest','root','123');
這就完成了PDO對象的初始化,所連接的數據庫是mysql數據庫的phptest這個數據庫,使用的用戶名和密碼分別是root和123
如果把dsn信息寫到配置文件中,則使用如下方式:
$pdo = new PDO('uri:MysqlDbo.ini','root','123'); /dsn數據寫在MysqlDbo.ini文件中
3.2 PDO對象的使用
PDO的成員方法如下:
1 ) query($sql); //用于執行查詢SQL語句。返回PDOStatement對象
2 ) exec($sql); //用于執行增、刪、改操作,返回影響行數;
3 ) setAttribute(); //設置一個'數據庫連接對象'屬性。
4 ) fetchAll(); //解析數據
下面舉例:
數據庫原始數據如下:
查詢數據:
1 <?php 2 //連接數據庫 3 try { 4 $pdo = new PDO('mysql:host=localhost;dbname=phptest', 'root', '20125202'); 5 } 6 catch (PDOException $e){ 7 die('數據庫連接失敗'.$e->getMessage()); 8 } 9 //查詢語句10 $sql = 'select * from students';11 //執行語句、解析數據12 echo ' id '.'____________'.'name'.'____________'.'sex'.'<br>';13 foreach ($pdo->query($sql) as $val){14 echo $val['id'].'____________'.$val['name'].'____________'.$val['sex'].'<br>';15 }16 ?>
效果如圖:
插入數據:
1 <?php 2 //連接數據庫 3 try { 4 $pdo = new PDO('mysql:host=localhost;dbname=phptest', 'root', '123'); 5 } 6 catch (PDOException $e){ 7 die('數據庫連接失敗'.$e->getMessage()); 8 } 9 //插入語句10 $sql = 'insert into students values('20125203','tony','female')';11 //執行語句、解析數據12 $res = $pdo->exec($sql);13 if ($res){14 echo '插入成功!</br>';15 }16 //查詢結果17 $sql = 'select * from students';18 echo ' id '.'____________'.'name'.'____________'.'sex'.'<br>';19 foreach ($pdo->query($sql) as $val){20 echo $val['id'].'____________'.$val['name'].'____________'.$val['sex'].'<br>';21 }22 ?>
效果如圖:
修改于刪除數據操作類似
修改數據:
1 <?php 2 //連接數據庫 3 try { 4 $pdo = new PDO('mysql:host=localhost;dbname=phptest', 'root', '123'); 5 } 6 catch (PDOException $e){ 7 die('數據庫連接失敗'.$e->getMessage()); 8 } 9 //插入語句10 //$sql = 'insert into students values('20125203','tony','female')';11 //修改語句12 $sql = 'update students set sex='male' where id='20125203'';13 //執行語句、解析數據14 $res = $pdo->exec($sql);15 if ($res){16 echo '修改成功!</br>';17 }18 //查詢結果19 $sql = 'select * from students';20 echo ' id '.'____________'.'name'.'____________'.'sex'.'<br>';21 foreach ($pdo->query($sql) as $val){22 echo $val['id'].'____________'.$val['name'].'____________'.$val['sex'].'<br>';23 }24 ?>修改數據
效果如圖:
刪除數據:
1 <?php 2 //連接數據庫 3 try { 4 $pdo = new PDO('mysql:host=localhost;dbname=phptest', 'root', '20125202'); 5 } 6 catch (PDOException $e){ 7 die('數據庫連接失敗'.$e->getMessage()); 8 } 9 //插入語句10 //$sql = 'insert into students values('20125203','tony','female')';11 //修改語句12 //$sql = 'update students set sex='male' where id='20125203'';13 //刪除語句14 $sql = 'delete from students where id='20125203'';15 //執行語句、解析數據16 $res = $pdo->exec($sql);17 if ($res){18 echo '刪除成功!</br>';19 }20 //查詢結果21 $sql = 'select * from students';22 echo ' id '.'____________'.'name'.'____________'.'sex'.'<br>';23 foreach ($pdo->query($sql) as $val){24 echo $val['id'].'____________'.$val['name'].'____________'.$val['sex'].'<br>';25 }26 ?>刪除數據
效果如圖:
以上就是PDO的基本使用方法與增刪查改等操作。
PHP編程鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答