一、PDO的概念 PDO其實就是一個資料庫的抽象層,使用PDO編程可以方便的在之後的實際運營中隨時更改資料庫而不用變更源代碼。PDO的位置如下圖所示: 二、PDO的開啟 PDO需要使用php 5.1 之後的版本。 查看是否開啟pdo功能需要新建一個php文件,使用phpinfo函數查詢 如圖,PDO ...
一、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 //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 ?>
效果如圖:
修改於刪除數據操作類似
修改數據:
![](http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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 ?>修改數據
效果如圖:
刪除數據:
![](http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
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的基本使用方法與增刪查改等操作。