众所周知MyISAM引擎不支持事务,但是我只是知道不支持事务,并未测试具体的表现是什么,测试代码如下:
try { //开启事务 Db::startTrans(); //(1).id为1的数据name字段修改为gao $isUpdate1 = Db::table('member')->where(['id' => 1])->update([ 'name' => 'gao1' ]); if (!$isUpdate1) { throw new Exception('更新第1条数据失败,事务已经回滚.'); } //(2).id为2的数据name字段修改为chen $isUpdate2 = Db::table('member')->where(['id' => 2])->update([ 'name' => 'chen' ]); if (!$isUpdate2) { throw new Exception('更新第2条数据失败,事务已经回滚.'); } // 提交事务 Db::commit(); } catch (Exception $exception) { //事务回滚 Db::rollback(); echo $exception->getMessage() . PHP_EOL; }
通过测试发现MyISAM直接忽视开启事务,提交事务,回滚事务,上面的代码相当于你没有写开启事务,提交事务,事务回滚的效果一样,只要有数据库操作一律直接执行。完全等同于下面的代码:
try { //(1).id为1的数据name字段修改为gao $isUpdate1 = Db::table('member')->where(['id' => 1])->update([ 'name' => 'gao1' ]); if (!$isUpdate1) { throw new Exception('更新第1条数据失败'); } //(2).id为2的数据name字段修改为chen $isUpdate2 = Db::table('member')->where(['id' => 2])->update([ 'name' => 'chen' ]); if (!$isUpdate2) { throw new Exception('更新第2条数据失败'); } } catch (Exception $exception) { echo $exception->getMessage() . PHP_EOL; }
php调用Webservice基本语法如下:$url ='xxxxxxx.cn' //链接服务器端 $client = new SoapClient($url);通过以上语法已经连接到webservice,也可将wsdl在本地使用,...
在一个正式项目中操作人员提交239个产品信息进行保存,但是系统却提示没有提交239个产品,于是开启错误信息,显示如下:Warning: Unknown: Input variables exceeded 1000. To incr...
php官方已经提供了Iterator(迭代器)接口,通过网上资料的学习,目前看适合超大集合或者数组提取使用。学习一个函数的实现对比内存占用差距.使用迭代器和普通循环实现range()函数。(1).普通循环实现range()函数。function newrange($low, $h...
使用php函数array_multisort()即可实现和SQL一样的order by排序. 例如我们需要对会员表按照主键降序排列,年龄升序排列://会员表数据 $list = []; $list[] = ['mid' =>&n...
逛公众号文章看到文章"php实现事件监听与触发的方法,你用过吗?",我就好奇了,php又不是asp.net的webform,哪里来的服务端事件监听。于是学习了一波。先看下监听类:class Event { /** &nbs...
(1).前端文件:<form action="upload.php" method="post" enctype="multipart/form-data"> &...