PDO扩展
注意:这里面有的的是伪代码,不可以执行
PDO连接MySQL
# 基本格式(mysql驱动,主机名,数据库名,数据库用户名,数据库密码)
$pdo = new PDO('mysql:host=your_hostname;dbname=yourdbname;', 'your_username', 'your_password');
# 例子
$pdo = new PDO('mysql:host=localhost;dbname=test;', 'root', '123456');
PDO对象
基本方法
$PDOStatment = query(); // 基本上query是用来操作select语句的,返回stmt对象
foreach ($conn->query($sql, PDO::FETCH_ASSOC) as $row) { // foreach遍历数据,尽量不要使用
var_dump($row);
}
$affected_rows = exec(); // 基本上exec是用来操作insert, update, delete语句的,返回影响行数
lastinsertid
prepare($sql); // 返回PDOStatment对象
事务处理
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); // 设置错误异常
setAttribute(PDO::ATTR_AUTOCOMMIT, 0); // 把 MySQL 的自动提交关闭
try {
beginTrasaction(); // 开启事务
if (...) {
throw new PDOException('...'); // 抛出异常
}
commit(); //提交事务
} cache (PDOException $e) {
roolBack(); // 回滚事务
}
setAttribute(PDO::ATTR_AUTOCOMMIT, 1); // 把 MySQL 的自动提交打开
PDOStatment对象
基本方法
bindValue(); // 参数绑定, 参数形式 (1, $value) 或 (':...', $value)
bindParam(); // 参数绑定,参数形式与上面相同,但是只在excute()执行的时候被调用
bindColumn(); // 数据绑定给自定义变量,用于结果集的输出
execute(); // 参数为可选,若前面用了 bindValue 或 bindParam 绑定就不需要参数,若没有则execute()参数有两种形式,array('', ,)和array(':'=>'', ,)
$stmt->rowCount(); // INSERT, UPDATE, DELETE 影响行数
$stmt->columnCount(); // 返回结果集中的列数
$row = $stmt->fetch(PDO::FETCH_ASSOC); // 返回查询到的记录,若为空则返回 false,可结合 while 语句进行遍历
fetchAll(); // 获取所有记录
fetchColumn($num); // 获取单独的列
closeCursor(); // 关闭游标,重新执行一次语句
PDOException对象
使用方法
try {
$PDO = new PDO( '...' ); // PDO Driver DSN. Throws A PDOException.
}
catch( PDOException $Exception ) {
// Note The Typecast To An Integer!
echo $Exception->getMessage() , (int)$Exception->getCode();
}
网友评论