- $login = "root";
- $passwd = "mysql";
- try{
- $db=new pdo('mysql:host=localhost;dbname=mysql',$login,$passwd);
- foreach($db->query('select * from test') as $row){
- print_r($row);
- }
- $db=null;
- }catch(pdoexception $e){
- echo $e->getmessage();
- }
看一個高級一點的:
- $dbms='mysql'; //數據庫類型 oracle 用odi,對于開發者來說,使用不同的數據庫,只要改這個,不用記住那么多的函數了
- $host='localhost'; //數據庫主機名
- $dbname='test'; //使用的數據庫
- $user='root'; //數據庫連接用戶名
- $pass=''; //對應的密碼
- $dsn="$dbms:host=$host;dbname=$dbname";
- class db extends pdo {
- public function __construct(){
- try {
- parent::__construct("$globals[dsn]", $globals['user'], $globals['pass']);
- } catch (pdoexception $e) {
- die("error: " . $e->__tostring() . "<br/>");
- }
- }
- public final function query($sql){
- try {
- return parent::query($this->setstring($sql));
- }catch (pdoexception $e){
- die("error: " . $e->__tostring() . "<br/>");
- } //開源代碼Vevb.com
- }
- private final function setstring($sql){
- echo "我要處理一下$sql";
- return $sql; }}
- $db=new db();
- $db->setattribute(pdo::attr_case, pdo::case_upper);
- foreach ($db->query('select * from xxxx_menu') as $row) {
- print_r($row);
- }
- $db->exec('delete from `xxxx_menu` where mid=43');
關于pdo說明
pod(php data object)擴展在php5中加入,php6中將默認識用pdo連接數據庫,所有非pdo擴展將會在php6被從擴展中移除。該擴展提供php內置類 pdo來對數據庫進行訪問,不同數據庫使用相同的方法名,解決數據庫連接不統一的問題。
我是配置在windows下做開發用的。
pdo的目標:
提供一種輕型、清晰、方便的 api,統一各種不同 rdbms 庫的共有特性,但不排除更高級的特性,通過 php 腳本提供可選的較大程度的抽象/兼容性.
pdo的特點:
性能,pdo 從一開始就吸取了現有數據庫擴展成功和失敗的經驗教訓,因為 pdo 的代碼是全新的,所以我們有機會重新開始設計性能,以利用 php 5 的最新特性.
能力,pdo 旨在將常見的數據庫功能作為基礎提供,同時提供對于 rdbms 獨特功能的方便訪問.
簡單,pdo 旨在使您能夠輕松使用數據庫,api 不會強行介入您的代碼,同時會清楚地表明每個函數調用的過程.
運行時可擴展,pdo 擴展是模塊化的,使您能夠在運行時為您的數據庫后端加載驅動程序,而不必重新編譯或重新安裝整個 php 程序,例如,pdo_oci 擴展會替代 pdo 擴展實現 oracle 數據庫 api,還有一些用于 mysql、postgresql、odbc 和 firebird 的驅動程序,更多的驅動程序尚在開發.
新聞熱點
疑難解答