数据库抽象层 PDO
因?yàn)檫@段時(shí)間工作比較忙 ?所以很長時(shí)間沒有更新技術(shù)博客了。 在這段時(shí)間學(xué)習(xí)到了很多以前沒有接觸過的東西。下面就來介紹一下數(shù)據(jù)庫抽象層PDO的使用:
PDO(PHP Data Objects)是一個(gè)輕量級的PHP擴(kuò)展,提供了一個(gè)數(shù)據(jù)訪問抽象層。還要就是PDO只能在PHP5.0以上版本使用。
下面來介紹一下PDO常用的預(yù)定義常量:
PDO::PARAM_BOOL?(integer) 表示布爾數(shù)據(jù)類型
PDO::PARAM_NULL?(integer) 表示數(shù)據(jù)類型為NULL的SQL
PDO::PARAM_INT?(integer) ?表示為integer數(shù)據(jù)類型的SQL
PDO::PARAM_STR?(integer) ?表示為char varchar 或者其他字符串的數(shù)據(jù)類型的SQL
PDO::PARAM_LOB?(integer) ?表示對象數(shù)據(jù)類型的SQL
PDO::FETCH_LAZY?(integer) 指定的獲取方式,應(yīng)當(dāng)返回結(jié)果集的每一行作為一個(gè)對象的變量名,對應(yīng)于它的字段名
PDO::FETCH_ORI_NEXT?(integer) 取結(jié)果集的下一行
PDO::FETCH_ORI_PRIOR?(integer)?取結(jié)果集的前面的行
PDO::FETCH_ORI_FIRST?(integer)?取結(jié)果集的第一行
PDO::FETCH_ORI_LAST?(integer) 取結(jié)果集的最后一行
PDO::ATTR_PERSISTENT?(integer) ? 創(chuàng)建一個(gè)持久連接,而不是新創(chuàng)建一個(gè)連接
PDO的基本用法:
使用PDO與數(shù)據(jù)庫連接(這里只使用MySQL):
<?php $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass); ?>
下面的代碼是對MySQL連接錯(cuò)誤時(shí)的處理:
1 <?php
2 try {
3 $dbh = new PDO('mysql:host=localhost;dbname=test', $user, $pass);
4 foreach($dbh->query('SELECT * from FOO') as $row) {
5 print_r($row);
6 }
7 $dbh = null;
8 } catch (PDOException $e) {
9 print "Error!: " . $e->getMessage() . "<br/>";
10 die();
11 }
12 ?>
下面是兩個(gè)重復(fù)使用插入語句的例子:
<?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();
?>
對數(shù)據(jù)庫進(jìn)行查詢操作:
<?php
$stmt = $dbh->prepare("SELECT * FROM REGISTRY where name = ?");
if ($stmt->execute(array($_GET['name']))) {
while ($row = $stmt->fetch()) {
print_r($row);
}
}
?>
轉(zhuǎn)載于:https://www.cnblogs.com/confusing/archive/2011/05/04/2037109.html
總結(jié)
以上是生活随笔為你收集整理的数据库抽象层 PDO的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux 下 nginx phpcgi
- 下一篇: WPF中实现先登录后启动主程序的方法