1,在数据库创建一张引擎为 inno DB 的表
2,特性,事务内的sql语句只有全部执行成功,才能统一操作数据库,否则全部失败
//DSN (Data Source Name) 数据源名称 (主机,库, 具体的什么数据库类型)
$dsn = "oci:dbname=localhost/sql"; //链接orecl 数据库
$dsn = "mysql:host=localhost;dbname=sql"; //链接mysql
//创建数据库连接
try{
//参数 dsn 账号 密码 配置属性
$pdo = new PDO($dsn,'root','root',array(PDO::ATTR_PERSISTENT=>true)); //定义为持久连接
$pdo -> setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION); //定义数据库连接为异常模式
$pdo -> setAttribute(PDO::ATTR_AUTOCOMMIT,0); //关闭自动提交
}catch(PDOException $e){
exit('数据库连接异常:'.$e->getMessage()); //获取数据库对象创建失败的原因
}
//操作数据库
try{
$pdo -> beginTransaction(); //开启一个事物处理
$pdo -> exec("delete from user"); //处理没有结果集的语句,可以获取影响行数
print_r($pdo -> query("select aa from user"));
$pdo -> commit(); //提交以上操作(失败一条则全部无效)
}catch(PDOException $e){
echo('错误原因'.$e->getMessage()); //获取操作数据库时出现的错误
$pdo -> rollBack(); //撤销所有操作
}