PHP学习 pdo的插入操作和事务操作
2014-03-12 22:53
281 查看
<?php
try{
$pdo=new PDO("mysql:host=localhost;dbname=xsphpdb", "root", "123456");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
}catch(PDOException $e){
echo "数据库连接失败:".$e->getMessage();
exit;
}
//执行SQL语句 exec() query() prepare()
//一是有结果集的query(), 执行select语句
//exec()用来执行有影响行数的,update, delete insert, other
//exec()返回的是影响的行数
$affected_rows=$pdo->exec("insert into shops(name1, price, num, desn) values('aa', '12.1', '10', 'good')");
//设置错误报告模式 ERRMODE_SILENT ERRMODE_WARNING
print_r($pdo->errorInfo());
====================================
<?php
try{
$pdo=new PDO("mysql:host=localhost;dbname=xsphpdb", "root", "123456", array(PDO::ATTR_AUTOCOMMIT=>0));
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
echo "数据库连接失败:".$e->getMessage();
exit;
}
//执行SQL语句 exec() query() prepare()
//一是有结果集的query(), 执行select语句
//exec()用来执行有影响行数的,update, delete insert, other
//exec()返回的是影响的行数
/*
*
* 事务处理
*
* 张三从李四那里买了一台 2000 元的电脑
*
* 从张三帐号中扣出 2000元
*
* 向李四账号中加入 2000元
*
* 从商品表中减少一台电脑
*
* MyIsAM InnoDB
*
*/
try{
$pdo->beginTransaction();
$price=500;
$sql="update zhanghao set price=price-{$price} where id=1";
$affected_rows=$pdo->exec($sql);
if(!$affected_rows)
throw new PDOException("张三转出失败");
$sql="update zhanghao set price=price+{$price} where id=3";
$affected_rows=$pdo->exec($sql);
if(!$affected_rows)
throw new PDOException("向李四转入失败");
echo "交易成功!";
$pdo->commit();
}catch(PDOException $e){
echo $e->getMessage();
$pdo->rollback();
}
$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, 1);
//设置错误报告模式 ERRMODE_SILENT ERRMODE_WARNING
try{
$pdo=new PDO("mysql:host=localhost;dbname=xsphpdb", "root", "123456");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_WARNING);
}catch(PDOException $e){
echo "数据库连接失败:".$e->getMessage();
exit;
}
//执行SQL语句 exec() query() prepare()
//一是有结果集的query(), 执行select语句
//exec()用来执行有影响行数的,update, delete insert, other
//exec()返回的是影响的行数
$affected_rows=$pdo->exec("insert into shops(name1, price, num, desn) values('aa', '12.1', '10', 'good')");
//设置错误报告模式 ERRMODE_SILENT ERRMODE_WARNING
print_r($pdo->errorInfo());
====================================
<?php
try{
$pdo=new PDO("mysql:host=localhost;dbname=xsphpdb", "root", "123456", array(PDO::ATTR_AUTOCOMMIT=>0));
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
echo "数据库连接失败:".$e->getMessage();
exit;
}
//执行SQL语句 exec() query() prepare()
//一是有结果集的query(), 执行select语句
//exec()用来执行有影响行数的,update, delete insert, other
//exec()返回的是影响的行数
/*
*
* 事务处理
*
* 张三从李四那里买了一台 2000 元的电脑
*
* 从张三帐号中扣出 2000元
*
* 向李四账号中加入 2000元
*
* 从商品表中减少一台电脑
*
* MyIsAM InnoDB
*
*/
try{
$pdo->beginTransaction();
$price=500;
$sql="update zhanghao set price=price-{$price} where id=1";
$affected_rows=$pdo->exec($sql);
if(!$affected_rows)
throw new PDOException("张三转出失败");
$sql="update zhanghao set price=price+{$price} where id=3";
$affected_rows=$pdo->exec($sql);
if(!$affected_rows)
throw new PDOException("向李四转入失败");
echo "交易成功!";
$pdo->commit();
}catch(PDOException $e){
echo $e->getMessage();
$pdo->rollback();
}
$pdo->setAttribute(PDO::ATTR_AUTOCOMMIT, 1);
//设置错误报告模式 ERRMODE_SILENT ERRMODE_WARNING
相关文章推荐
- php使用PDO事务配合表格读取大量数据插入操作实现方法
- PHP使用pdo实现事务处理操作示例
- PHP学习笔记(15)PDO数据库操作+AJAX无刷新技术删除用户
- PHP基于PDO实现的SQLite操作类【包含增删改查及事务等操作】
- php学习_第16章_PDO操作数据库
- php学习笔记之PDO连接数据库及一些操作
- php学习第三天----pdo操作
- PHP PDO操作mysql事务
- Executing a batch in a transaction--PHP DATA OBJECT(PDO)事务处理中的批量操作
- [php学习笔记]PDO类操作数据库
- PHP中PDO事务处理操作示例
- [PHP] - PDO事务操作
- php操作pdo实现插入
- PHP学习 PDO连接数据库和设备常量的操作
- PHP学习:文件操作
- PHP数据库抽象层之PDO(三)——事务与自动提交
- php利用pdo进行mysql的事务处理机制
- H5学习_番外篇_PHP数据库操作
- php oci8.dll 插入数据到oracle数据库 php操作oracle数据库 亲测 ORA-00911 无效字符错误解决方法