1.什么是PDO?
PDO(PHP Data Objects) 是 PHP 的一个扩展,定义了一系列轻量级的、通用性的、跨数据库的访问接口。
在以前,如果你用的是MySQL数据库,要打开 php_mysql.dll 的一个扩展,然后用 PHP 提供的 MySQL 函数来访问数据库;如果你用的是 MSSQL,就打开 php_mssql.dll 的扩展,用 PHP 提供的 MSSQL 函数来访问数据库。现在,你只要打开 pdo 相应的数据库扩展(例如:在Windows 平台 PHP 5.3.5 的 php.ini 中 php_pdo_mysql.dll,php_pdo_mssql.dll),就能用 PDO 提供的各种方法来访问各种不同类型的数据库,如MySQL、Oracle、MSSQL。
PDO 是 PHP 5.1 新加入的,在 PHP 5.0 中 PDO 也能作为 PECL 的一个扩展来用,但是它不适用于 PHP 5.0 的早期版本。
它有点类似Java框架的Hibernate。
2.基本例子
employees表 |
<?php
/* Connect to an ODBC database using driver invocation */
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'root';
$password = 'root';
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
$sth = $dbh->query('SELECT * FROM employees');//query方法用于查询
$result = $sth->fetch();//获取第一行数据
print_r($result);
$result = $sth->fetchAll();//获取所有数据
print_r($result);
?>
<?php
/* Connect to an ODBC database using driver invocation */
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'root';
$password = 'root';
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
//插入数据,exec方法用于 INSERT,UPDATE,DELETE等操作
$count = $dbh->exec("INSERT INTO employees (`id`,`fname`,`lname`,`hired`,`separated`,`job_code`,`store_id`)
VALUES ('5','sherlock','wang','2012-01-01','2013-03-01','10','20')");
print("affected $count rows.\n");
?>
<?php
/* Connect to an ODBC database using driver invocation */
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'root';
$password = 'root';
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
$sth = $dbh->prepare('SELECT * FROM employees WHERE job_code=:job_code AND store_id=:store_id');//prepare方法用於 SELECT、INSERT、UPDATE 及 DELETE 等需要多次進行資料處理的 SQL 上
$sth->execute(array(':job_code' => 2, ':store_id' => '2'));
$result = $sth->fetchAll();//获取所有数据
print_r($result);
$sth->execute(array(':job_code' => 12, ':store_id' => '7'));
$result = $sth->fetchAll();//获取所有数据
print_r($result);
?>
<?php
/* Connect to an ODBC database using driver invocation */
$dsn = 'mysql:dbname=test;host=127.0.0.1';
$user = 'root';
$password = 'root';
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
$sth = $dbh->prepare('SELECT * FROM employees WHERE job_code=? AND store_id=?');//用 ? 代替
$sth->execute(array(2,'2'));//按 ? 出现的次序设置值
$result = $sth->fetchAll(PDO::FETCH_ASSOC);
print_r($result);
$sth->execute(array(12,'7'));
$result = $sth->fetchAll(PDO::FETCH_NUM);
print_r($result);
?>
详情:PDO API
没有评论:
发表评论