本文執行個體講述了php使用pdo串連並查詢sql資料庫的方法。分享給大家供大家參考。
具體實現代碼如下:
複製代碼 代碼如下:
$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/>");
}
}
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 的驅動程式,更多的驅動程式尚在開發.
希望本文所述對大家的php資料庫程式設計有所協助。