1、PDO的概念php
PDO其實就是一個數據庫的抽象層,使用PDO編程能夠方便的在以後的實際運營中隨時更改數據庫而不用變動源代碼。PDO的位置以下圖所示:mysql
2、PDO的開啓linux
PDO須要使用php 5.1 以後的版本。sql
查看是否開啓pdo功能須要新建一個php文件,使用phpinfo函數查詢數據庫
如圖,PDO驅動和pdo_mysql擴展均開啓(enabled)編程
linux:ubuntu
個人系統是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 安裝驅動便可,別的數據庫也是這樣操做。windows
win:在php.ini文件中,把如下兩行註釋去掉ide
extension=php_pdo.dll //PDO驅動程序共享擴展必須有 (windows)函數
extension=php_pdo_mysql.dll //MySQL擴展
若是要開啓別的數據庫擴展去掉相應的註釋便可
3、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的基本使用方法與增刪查改等操做。