1. 可以访问其它数据库
2. 具有事务功能
3. 带有预处理语句功能(防止 SQL 注入攻击)
访问数据库
PDO::__construct ( string
[, string
- $dsn
[, string
- $username
[, array
- $password
]]] )
- $driver_options
$dsn = 'mysql:dbname=testdb;host=127.0.0.1' ;
例:
- php
- //1.造PDO对象
- $dsn = "mysql:dbname=mydb;host=localhost";
- $pdo = new PDO($dsn,"root","root");
- //2.写SQL语句
- $sql = "select * from nation";
- $sql = "insert into nation values('002','点点')";
- //3.执行SQL语句
- $stm = $pdo->query($sql);
- $arr = $pdo->exec($sql);
- //4.从PDOStatement对象里面读数据
- $arr = $stm->fetchAll(PDO::FETCH_NUM);
- var_dump($arr);
- ?>
PDOStatement::fetch 从结果集中获取下一行
事务功能 (在事务里面的内容,要么全部执行,要么都不执行。例如转账,这边扣钱,对方就得收到钱;而不能这边扣钱了,对方没收到钱。)
- php
- //beginTransaction 启动事务
- //commit 提交事务
- //rollback 回滚
- $dsn = "mysql:dbname=mydb;host=localhost";
- $pdo = new PDO($dsn,"root","root");
- //将PDO的错误类型设置为异常模式
- $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
- try
- {
- //开启事务
- $pdo->beginTransaction();
- $sql1 = "insert into nation values('082','数据')";
- $sql2 = "insert into nation values('084','的库')";
- $sql3 = "insert into nation values('083','帅哥')";
- $pdo->exec($sql1);
- $pdo->exec($sql2);
- $pdo->exec($sql3);
- //提交事务
- $pdo->commit();
- }
- catch(Exception $e)//抓取操作
- {
- //回滚操作
- $pdo->rollBack();
- }
- /*final
- {
- //最终执行,无论有没有异常出现,该代码都会执行
- }*/
- ?>
来源: http://www.cnblogs.com/gaobint/p/6489577.html