PDO又称为数据访问抽象层,它有三个功能:php
1.php中访问其余数据库;mysql
2.事务功能;sql
3.防止SQL注入攻击。数据库
用法:服务器
1.造对象:fetch
造数据源:$dsn = "mysql(数据库名称):dbname=mydb(访问的数据库名称);host=localhost(访问的地址)"; ;spa
$pdo = new PDO($dsn,"root","123");;code
2.写SQL语句:对象
$sql = "查询语句";;blog
3.调用
$stm = $pdo->query($sql);
$arr = $stm->fetchAll();。
防止SQL注入攻击:
$dsn = "mysql:dbname=mydb;host=localhost"; $pdo = new PDO($dsn,"root","123"); //$sql = "insert into nation values(?,?)"; //将SQL语句放到服务器等待执行 //$stm = $pdo->prepare($sql); //将参数传递到服务器开始执行 //$arr = array("n016","不死族"); //$stm->execute($arr); $sql = "insert into nation values(:code,:name)"; $stm = $pdo->prepare($sql); $arr = array("code"=>"n017","name"=>"精灵族"); $stm->execute($arr);
事物功能:
事物:操做数据库的每个步骤,使其绑在一块儿,同时成功或同时失败的结果。
$dsn = "mysql:dbname=mydb;host=localhost"; $pdo = new PDO($dsn,"root","123"); //设置PDO的异常模式 $pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); //如何捕获异常 try{ //你要执行的代码 //开启事务功能 $pdo->beginTransaction(); $sql = "insert into nation values('n018','人族')"; $sql1 = "insert into nation values('n019','回族')"; $pdo->query($sql); $pdo->query($sql1); //提交事务执行 $pdo->commit(); }catch(Exception $e){ //echo $e->getMessage(); //回滚 $pdo->rollBack(); }