下面就來介紹一下資料庫抽象層PDO的使用:
PDO(PHP Data Objects)是一個輕量級的PHP擴充,提供了一個資料訪問抽象層。還要就是PDO只能在PHP5.0以上版本使用。
下面來介紹一下PDO常用的預定義常量:
PDO::PARAM_BOOL (integer) 表示布林值資料型別
PDO::PARAM_NULL (integer) 表示資料類型為NULL的SQL
PDO::PARAM_INT (integer) 表示為integer資料類型的SQL
PDO::PARAM_STR (integer) 表示為char varchar 或者其他字串的資料類型的SQL
PDO::PARAM_LOB (integer) 表示對象資料類型的SQL
PDO::FETCH_LAZY (integer) 指定的擷取方式,應當返回結果集的每一行作為一個對象的變數名,對應於它的欄位名
PDO::FETCH_ORI_NEXT (integer) 取結果集的下一行
PDO::FETCH_ORI_PRIOR (integer) 取結果集的前面的行
PDO::FETCH_ORI_FIRST (integer) 取結果集的第一行
PDO::FETCH_ORI_LAST (integer) 取結果集的最後一行
PDO::ATTR_PERSISTENT (integer) 建立一個持久串連,而不是新建立一個串連
PDO的基本用法:
使用PDO與資料庫連接(這裡只使用MySQL):複製代碼 代碼如下:<?php
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
?>
下面的代碼是對MySQL串連錯誤時的處理: 複製代碼 代碼如下:<?php
try {
$dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
foreach($dbh->query('SELECT * from FOO') as $row) {
print_r($row);
}
$dbh = null;
} catch (PDOException $e) {
print "Error!: " . $e->getMessage() . "<br/>";
die();
}
?>
下面是兩個重複使用插入語句的例子: 複製代碼 代碼如下:<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (:name, :value)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':value', $value);
// insert one row
$name = 'one';
$value = 1;
$stmt->execute();
// insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();
?>
複製代碼 代碼如下:<?php
$stmt = $dbh->prepare("INSERT INTO REGISTRY (name, value) VALUES (?, ?)");
$stmt->bindParam(1, $name);
$stmt->bindParam(2, $value);
// insert one row
$name = 'one';
$value = 1;
$stmt->execute();
// insert another row with different values
$name = 'two';
$value = 2;
$stmt->execute();
?>
對資料庫進行查詢操作: 複製代碼 代碼如下:<?php
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
if ($stmt->execute(array($_GET['name']))) {
while ($row = $stmt->fetch()) {
print_r($row);
}
}
?>