PDO

Posted 格调evo

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PDO相关的知识,希望对你有一定的参考价值。

PDO 数据访问抽象层
dsn 数据源
特点 1.带有事务功能
$dsn="mysql:host=localhost;dbname=zxpm";
//造pdo对象
$pdo=new PDO($dsn,"root","");
//设置为异常模式
$pdo->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION );

try
{
//启动事务
$pdo->beginTransaction();
//写sql语句
$sql="insert into nation values(‘n005‘,‘藏族‘)";
//执行sql语句
$a=$pdo->exec($sql);
$pdo->commit();
}
catch(PDOException $e)
{
//echo $e->getMessage();
//回滚事务
$pdo->rollBack();
}

启动事务和回滚事务之间的语句如果有错误就回滚,相当于不执行

2.可以防止sql注入攻击
$dsn="mysql:host=localhost;dbname=zxpm";
$pdo=new PDO($dsn,"root","");
$sql="insert into nation values(?,?)";//?代表站位符
//将一条sql语句放到服务器等待执行
$stm=$pdo->prepare($sql);
//绑定参数,给站位符
/*$stm->bindParam(1,$code);
$stm->bindParam(2,$name);
//给变量赋值
$code="n006";
$name="傣族";*/
$attr=array("n007","土家");//简单方法
//执行预处理语句,执行成功,返回true,失败返回false
if($stm->execute($attr))
{
//var_dump($stm->fetch());
//var_dump($stm->fetchAll(PDO::FETCH_ASSOC));
}

另外一种方法

$dsn="mysql:host=localhost;dbname=zxpm";
$pdo=new PDO($dsn,"root","");
$sql="insert into nation values(:code,:name)";//:代表站位符
//将一条sql语句放到服务器等待执行
$stm=$pdo->prepare($sql);
//绑定参数,给站位符
/*$stm->bindParam(1,$code);
$stm->bindParam(2,$name);
//给变量赋值
$code="n006";
$name="傣族";*/
$attr=array("code"=>"n008","name"=>"兽族");//关联数组
//执行预处理语句,执行成功,返回true,失败返回false
if($stm->execute($attr))
{
//var_dump($stm->fetch());
//var_dump($stm->fetchAll(PDO::FETCH_ASSOC));
}

以上是关于PDO的主要内容,如果未能解决你的问题,请参考以下文章

PDO 事务是不是涵盖 PDO::query()?

PDO->query() 和 PDO->exec() 的区别

PDO::fetchAll 与 PDO::fetch 循环

PHP PDO学习小结

PDO

PDO