php中在PDO中使用事务(Transaction)
并且在执行的过程中, 如果其中的某条执行失败, 可以回滚所有已更改的操作. 如果执行成功, 那么这一系列操作都会永久有效. 事务很好的解决了在操作数据库的时候不同步的问题. 同时, 通过事务去执行大数据量的时候, 执行效率可以提高很多很多.
在 PDO 中, 事务已经显得非常简单. 下面一个基本的例子, 演示了向 SQLite 数据库插入 1000000 条数据, 并且在出错的时候回滚.
代码如下:
try
{
$conn = new PDO('sqlite:Transactioion.s3db');
$conn->beginTransaction();
for($i=0; $i<1000000; $i++)
{
$conn->exec("insert into [users] values(null,'username')");
}
$conn->commit();
}
catch(PDOException $ex)
{
$conn->rollBack();
}
相关推荐
-
PHP MSSQL 存储过程的方法
复制代码 代码如下: function generateDocCode() { $wf_id = self::WORKFLOW_ID; $doc_code = ""; $link = mssql_connect($this->cfg->db->params->host, $this->cfg->db->params->username, $this->cfg->db->params->password) or di
-
基于Php mysql存储过程的详解
实例一:无参的存储过程 复制代码 代码如下: $conn = mysql_connect('localhost','root','root') or die ("数据连接错误!!!");mysql_select_db('test',$conn);$sql = "create procedure myproce()beginINSERT INTO user (id, username, sex) VALUES (NULL, 's', '0');end;";mysql_
-
PHP5中使用PDO连接数据库的方法
1.PDO简介 PDO(PHP Data Object) 是PHP 5 中加入的东西,是PHP 5新加入的一个重大功能,因为在PHP 5以前的php4/php3都是一堆的数据库扩展来跟各个数据库的连接和处理,什么 php_mysql.dll.php_pgsql.dll.php_mssql.dll.php_sqlite.dll等等. PHP6中也将默认使用PDO的方式连接,mysql扩展将被作为辅助 2.PDO配置 PHP.ini中,去掉"extension=php_pdo.dll"前面
-
php中mysql连接方式PDO使用详解
PDO常用方法: PDO::query()主要用于有记录结果返回的操作(PDOStatement),特别是select操作. PDO::exec()主要是针对没有结果集合返回的操作.如insert,update等操作.返回影响行数. PDO::lastInsertId()返回上次插入操作最后一条ID,但要注意:如果用insert into tb(col1,col2) values(v1,v2),(v11,v22)..的方式一次插入多条记录,lastinsertid()返回的只是第一条(v1,v2
-
PHP PDO函数库详解
目前而言,实现"数据库抽象层"任重而道远,使用PDO这样的"数据库访问抽象层"是一个不错的选择. PDO中包含三个预定义的类 PDO中包含三个预定义的类,它们分别是 PDO.PDOStatement 和 PDOException. 一.PDO PDO->beginTransaction() - 标明回滚起始点PDO->commit() - 标明回滚结束点,并执行SQLPDO->__construct() - 建立一个PDO链接数据库的实例PDO-&
-
php存储过程调用实例代码
复制代码 代码如下: //比如要调用的存储过程为gxtj(a,b) $db=new mysqli("localhost","ssss","aaaaa","bbbb"); mysqli_query($db,"SET NAMES utf8"); $result=$db->query("call gxtj($year,$jd)"); // gxtj是mysql的存储过程名称 [color
-
PHP中PDO的错误处理
面向对象的方式 先看看如果连接错误等的处理,PHP中PDO的错误处理,使用面向对象的方式来处理: 复制代码 代码如下: <?php try { $db = new PDO('mysql:host=localhost;dbname=test', $user, $pass); $db = null; } catch (PDOException $e) { print "Error: " . $e->getMessage() . "<br/>";
-
php调用mysql存储过程
前面转载了一篇<php调用mysql存储过程的文章>经过测试,发现文章中的方法似乎不可行! 调用带有select语句的存储过程就出现 PROCEDURE p can't return a result set in the given context的错误.google了半天,在mysql官网上找到一些说法,db_mysql的模块不支持存储过程调用,解决方法是用db_mysqli.测试了一下,果然可以了. 用法比较简单,没啥好说的,从网上copy一段代码吧: <?php /* Conne
-
PHP使用PDO调用mssql存储过程的方法示例
本文实例讲述了PHP使用PDO调用mssql存储过程的方法.分享给大家供大家参考,具体如下: 数据库中已创建存储过程user_logon_check, PHP调用示例如下, <?php $dsn = 'mssql:dbname=MyDbName;host=localhost'; $user = 'sa'; $password = '666666'; try { $dbCon = new PDO($dsn, $user, $password); } catch (PDOException $e)
-
用PHP调用Oracle存储过程的方法
但是使用存储过程至少有两个最明显的优点:速度和效率.使用存储过程的速度显然更快.在效率上,如果应用一次需要做一系列sql操作,则需要往返于php与oracle,不如把该应用直接放到数据库方以减少往返次数,增加效率.但是在internet应用上,速度是极度重要的,所以很有必要使用存储过程.偶也是使用php调用存储过程不久,做了下面这个列子. 代码 复制代码 代码如下: //建立一个test表 create table test ( id number(16) not null, name varc
-
PHP基于PDO调用sqlserver存储过程通用方法【基于Yii框架】
本文实例讲述了PHP基于PDO调用sqlserver存储过程的方法.分享给大家供大家参考,具体如下: 由于业务这边存储过程一直在sqlserver上面,所以要用php去调用它,然而我们本地的是windows,而线上又是linux,一开始使用Yii框架的一些机制去调用发现在本地一直都是好的然而到线上就不行了,找了很多方案,最后找到了pdo这种方案,而本地使用的驱动是sqlsrv线上是dblib所以需要注意下链接pdo时的驱动形式,在取结果集的时候注意windows和linux好像有所不同,在我加上
随机推荐
- swift 3.0中realm封装类示例代码
- 原生JavaScript编写canvas版的连连看游戏
- ISO-8859-1 、Latin-1 西欧编码介绍及应用
- 基于jquery实现左右按钮点击的图片切换效果
- JSChart轻量级图形报表工具(内置函数中文参考)
- 为你总结一些php系统类函数
- 2个自定义的PHP in_array 函数,解决大量数据判断in_array的效率问题
- python进阶教程之动态类型详解
- JSP开发中在spring mvc项目中实现登录账号单浏览器登录
- Windows平台的 PHP 报错 Fatal error: Class COM not found in 的解决方法
- 可以查询google排名的asp源码
- 图片自动缩小 点击放大
- 实用的层滑开js实现代码
- VB.NET中Caching的使用方法
- c#文档图片自动纠偏
- Android实现语音数据实时采集、播放
- Struts2 控制文件上传下载功能实例代码
- Python3生成手写体数字方法
- 查看Linux系统是32位还是64位的方法总结
- spring boot2.0图片上传至本地或服务器并配置虚拟路径的方法