pdo : 数据库抽象层
特点: 跨数据库 预处理 事务处理
$pdo=new PDO('mysql:host=127.0.0.1;dbname=test;charset=utf8','root','root','错误提示'); 连接数据库
$pdo->query('select * from user' ) ; //用来执行查询
$pdo->exec('update user set id=2'); //执行增加删除修改
$data=$stmt->fetchAll(PDO::FETCH_ASSOC); //提取数据
$pdo->lastInsertId() 最插入的id
$stmt->rowCount() 受影响的行数
PDO的错误模式
getAttribute() 获取pdo的错误模式
setAttribute() 设置pdo的错误模式
$pdo->setAttribute(PDO::ATTR_ERRMODE,2);
PDO::ERRMODE_SILENT 默认 0
PDO::ERRMODE_WARNING 警告 1
PDO::ERRMODE_EXCEPTION 异常 2
PDO 预处理
准备一条预处理的语句 ?占位符
$stmt = $pdo->prepare("insert into user(username,password,sex,age) values(?,?,?,?)");
1.通过绑定 值的方式 给占位符 赋值
$stmt->bindValue(1,'柳岩');
2.通过绑定参数的形式 给占位符赋值
$stmt->bindParam(1,$username);
3.通过索引数组 给占位符赋值
$arr = ['刘德华','123','男','53'];
// 发送预处理语句
$res = $stmt->execute($arr);
PDO: 事务
数据表:
MyISAM 特点:执行效率比较快 不支持事务
InnoDB 特点:支持事务
事务处理:
1.开启事务 beginTransaction()
2.提交事务 commit()
3.回滚事务 rollback()
$pdo->beginTransaction()