POD擴展是在PHP5中加入,該擴展提供PHP內置類 PDO來對數據庫進行訪問,不同數據庫使用相同的方法名,解決數據庫連接不統一的問題。
PDO的特點:
性能。PDO 從一開始就吸取了現有數據庫擴展成功和失敗的經驗教訓。因為 PDO 的代碼是全新的,所以我們有機會重新開始設計性能,以利用 PHP 5 的最新特性。
能力。PDO 旨在將常見的數據庫功能作為基礎提供,同時提供對于 RDBMS 獨特功能的方便訪問。
簡單。PDO 旨在使您能夠輕松使用數據庫。API 不會強行介入您的代碼,同時會清楚地表明每個函數調用的過程。
運行時可擴展。PDO 擴展是模塊化的,使您能夠在運行時為您的數據庫后端加載驅動程序,而不必重新編譯或重新安裝整個 PHP 程序。例如,PDO_OCI 擴展會替代 PDO 擴展實現 oracle 數據庫 API。還有一些用于 MySQL、PostgreSQL、ODBC 和 Firebird 的驅動程序,更多的驅動程序尚在開發。
PDO 安裝
你可以通過 PHP 的 phpinfo() 函數來查看是否安裝了PDO擴展。
1.在 Unix /Linux系統上安裝 PDO
在Unix上或Linux上你需要添加以下擴展:
extension=pdo.so
2.在Windows安裝pdo
PDO 和所有主要的驅動作為共享擴展隨 PHP 一起發布,要激活它們只需簡單地編輯 php.ini 文件,并添加以下擴展:
extension=php_pdo.dll
除此之外還有以下對應的各種數據庫擴展:
;extension=php_pdo_firebird.dll ;extension=php_pdo_informix.dll ;extension=php_pdo_mssql.dll ;extension=php_pdo_mysql.dll ;extension=php_pdo_oci.dll ;extension=php_pdo_oci8.dll ;extension=php_pdo_odbc.dll ;extension=php_pdo_pgsql.dll ;extension=php_pdo_sqlite.dll
打開php.ini把上面所有行前面的分號去掉就可以了。
在設定好這些配置后,我們需要重啟PHP 或 Web服務器。
下面我們以mysql為例來使用pdo:
<?php $dbms='mysql'; //數據庫類型 $host='localhost'; //數據庫主機名 $dbName='test'; //使用的數據庫 $user='root'; //數據庫連接用戶名 $pass=''; //對應的密碼 $dsn="$dbms:host=$host;dbname=$dbName"; try { $dbh = new PDO($dsn, $user, $pass); //初始化一個PDO對象 echo "連接成功<br/>"; /*你還可以進行一次搜索操作 foreach ($dbh->query('SELECT * from FOO') as $row) { print_r($row); //你可以用 echo($GLOBAL); 來看到這些值 } */ $dbh = null; } catch (PDOException $e) { die ("Error!: " . $e->getMessage() . "<br/>"); } //默認這個不是長連接,如果需要數據庫長連接,需要最后加一個參數:array(PDO::ATTR_PERSISTENT => true) 變成這樣: $db = new PDO($dsn, $user, $pass, array(PDO::ATTR_PERSISTENT => true)); ?>
再來看看pdo的詳細介紹:
1.預定義常量:
PDO::PARAM_BOOL (integer) | 表示布爾數據類型。 |
PDO::PARAM_NULL (integer) | 表示 SQL 中的 NULL 數據類型。 |
PDO::PARAM_INT (integer) | 表示 SQL 中的整型。 |
PDO::PARAM_STR (integer) | 表示 SQL 中的 CHAR、VARCHAR 或其他字符串類型。 |
PDO::PARAM_LOB (integer) | 表示 SQL 中大對象數據類型。 |
PDO::PARAM_STMT (integer) | 表示一個記錄集類型。當前尚未被任何驅動支持。 |
PDO::PARAM_INPUT_OUTPUT (integer) | 指定參數為一個存儲過程的 INOUT 參數。必須用一個明確的 PDO::PARAM_* 數據類型跟此值進行按位或。 |
PDO::FETCH_LAZY (integer) | 指定獲取方式,將結果集中的每一行作為一個對象返回,此對象的變量名對應著列名。PDO::FETCH_LAZY 創建用來訪問的對象變量名。在 PDOStatement::fetchAll() 中無效。 |
PDO::FETCH_ASSOC (integer) | 指定獲取方式,將對應結果集中的每一行作為一個由列名索引的數組返回。如果結果集中包含多個名稱相同的列,則PDO::FETCH_ASSOC每個列名只返回一個值。 |
PDO::FETCH_NAMED (integer) | 指定獲取方式,將對應結果集中的每一行作為一個由列名索引的數組返回。如果結果集中包含多個名稱相同的列,則PDO::FETCH_ASSOC每個列名 返回一個包含值的數組。 |
PDO::FETCH_NUM (integer) | 指定獲取方式,將對應結果集中的每一行作為一個由列號索引的數組返回,從第 0 列開始。 |
PDO::FETCH_BOTH (integer) | 指定獲取方式,將對應結果集中的每一行作為一個由列號和列名索引的數組返回,從第 0 列開始。 |
PDO::FETCH_OBJ (integer) | 指定獲取方式,將結果集中的每一行作為一個屬性名對應列名的對象返回。 |
PDO::FETCH_BOUND (integer) | 指定獲取方式,返回 TRUE 且將結果集中的列值分配給通過 PDOStatement::bindParam() 或 PDOStatement::bindColumn() 方法綁定的 PHP 變量。 |
PDO::FETCH_COLUMN (integer) | 指定獲取方式,從結果集中的下一行返回所需要的那一列。 |
PDO::FETCH_CLASS (integer) | 指定獲取方式,返回一個所請求類的新實例,映射列到類中對應的屬性名。 【網站聲明】本站除付費源碼經過測試外,其他素材未做測試,不保證完整性,網站上部分源碼僅限學習交流,請勿用于商業用途。如損害你的權益請聯系客服QQ:2655101040 給予處理,謝謝支持。 相關文檔推薦這篇文章主要介紹了PHP有序表查找之插值查找算法,簡單分析了插值查找算法的概念、原理并結合實例形式分析了php實現針對有序表插值查找的相關操作技巧,需要的朋友可以參考下
下面小編就為大家分享一篇ThinkPHP整合datatables實現服務端分頁的示例代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
下面小編就為大家分享一篇PHP實現APP微信支付的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
這篇文章主要介紹了PHP實現的多維數組排序算法,結合實例形式對比分析了php針對多維數組及帶有鍵名的多維數組進行排序相關操作技巧與注意事項,需要的朋友可以參考下
這篇文章主要為大家詳細介紹了php結合ajaxuploadfile實現無刷新文件上傳功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本篇文章給大家詳細介紹了PHP開發接口使用RSA進行加密解密方法,對此有興趣的朋友可以學習下。
css3
html5
canvas
域名頁
域名停放
地板
扁平
在線客服
動畫特效
按鈕切換
動畫模板
360
angular
jquery
svg
游戲模板
物流網站
博客
攝影
導航
小說源碼
郵件群發
蘋果cms
微擎微贊
微商
訂單系統
小程序
電影源碼
微信程序
帝國cms
養生網
挖礦網
java視頻
視頻打賞
thinkphp
蜘蛛池
discuz模板
淘寶客
音樂
分發系統
o2o
微擎
視頻教程
商城
掃碼點餐
零售系統
進銷存系統
bootstrap
商城模板
商務合作
廣告設計
驗證碼
門戶
ar
OElove
漫畫網
全景
視頻
區塊鏈
虛擬幣
你畫我猜
卡券
微小區
交友
小游戲
3d
刷單
小米
資源
ai
|