关于Thinkphp 事务处理 mysql 插入获取ID的问题。

如题所述

$sql_exist="select * from ".C('blog_info')." where title='$title'"; $count1 =$Info_obj->execute($sql_exist); if(empty($count1)){ $checkadmin=new Model; import('Think.Util.Input'); //调用当前Session值。 $adminuser=trim(Session::get(C('USER_AUTH_NAME'))); //echo $adminuser; //echo lll; date_default_timezone_set("PRC"); $act_time=date("Y-m-d H:i:s"); $sql="insert into ".C('blog_info')." set title='$title',content='$content'"; //$id=mysql_insert_id(); $action="添加了id为".$id."的记录"; $in_log="insert into ".C('blog_log')." set adduser='$adminuser',action='".$action."',act_time='$act_time'"; $count =$Info_obj->execute($sql); $count2=$Info_obj->execute($in_log); if(!empty($count)&&!empty($count2)){ //$s_log =$Info_obj->query($sql_log); $Info_obj->commit(); return $count;} else{ $Info_obj->rollback; return 3; } //return $s_log; }else{ return 3; }用mysql_insert_id();是在第一条数据执行之后生成的, 事务处理时 两条sql是同时进行。 这样就获取不到ID值。
温馨提示:内容为网友见解,仅供参考
无其他回答

thinkphp里面的add方法为什么我插入错误的表字段还是可...
因为你的id是自增的,虽然没有数据,但是还是增加了一条记录

thinkPHP MySQL查询语句生成问题!
加入$map['_logic'] = 'OR';或 map['id|receiverid'] = array(session('uid'),array('in', implode(",",$idset)),'_multi'=>true);以上方法等效。当且与或并存时可以用复合查询,如以下多了一个name map['receiverid'] = session('uid');map['id'] = array('in', implode("...

thinkphp 3.2.3 exp注入漏洞分析
在官网下载thinkphp3.2.3,配置MySQL账号密码于Convention.php文件,添加一行用于打印SQL语句。漏洞代码通过特定的HTTP请求触发,如:http:\/\/127.0.0.1\/index.php?id[0]=exp&id[1]==1 or sleep(5)。通过断点调试,跟踪至Model类的select函数,进而深入至其内部处理逻辑,发现$exp的值即为传入的ex...

ThinkPHP3.2框架使用addAll()批量插入数据的方法
user = M('demo');$data['name'] = 'xiaoming';$data['sex'] = '1';$data['age'] = '23';\/\/ 使用add()方法将数据写入数据库\/\/ 返回 Id$insertId = $user->add($data);还有一个实用的方法 filter(),这个方法是将字段内容过滤成文本。如下例子:将thinkphp 转化为“thinkphp”\/\/...

thinkphp如何同时向数据库插入多条数据?
数据整理好后,批量插入可用addAll方法(仅针对Mysql数据库):User->addAll($data);

ThinkPHP 3.2 版本升级了哪些内容
[改进] 针对数据库视图无主键的问题,使用默认id作为主键,与未开启DB_FIELDS_CACHE时行为一致 [改进] SAE模式惯例配置增加上传驱动设置 [改进] 改进参数绑定机制 [改进] 确保使用参数绑定后日志中生成sql语句的准确性 [改进] 模型类的setInc和setDec方法支持延迟写入,同时取消高级模型的相关方法 [改进...

layui菜鸟教程?
跟着之前说的教程把整个thinkphp项目部署到新浪云,具体步骤看 代码 在代码管理那里可上传压缩包,或者在线编辑(跟记事本差不多),改动大的最好在本地写好再贴上去 数据库 开启共享型mysql服务,目前用了phpmyadmin4.9版本,然后建表或导入sql文件 缓存 开启memcached服务,设置容量16MB(省点钱),其实这个服务我不是很清楚...

Thinkphp怎么批量更新数据
thinkphp批量更新数据可以参考如下三种方法:方法一:\/\/批量修改 data二维数组 field关键字段 参考ci 批量修改函数 传参方式 function batch_update($table_name='',$data=array(),$field=''){ if(!$table_name||!$data||!$field){ return false;}else{ sql='UPDATE '.$table_name;} con=...

ThinkPHP 3.2 版本升级了哪些内容
[修正]修正MongoModel类的写入数据的自增获取[修正]修正第三方模板引擎驱动类[修正]修正自动加载可能的一处导致重复加载的问题[修正]修正__CONTROLLER__ 在URL不区分大小写情况下的获取[修正]修正Route类中请求类型判断错误的bug[修正]修正mysqli驱动的free方法[改进]改进CronRun行为扩展[改进]TOKEN_NAME 未设置时...

layui菜鸟教程?
跟着之前说的教程把整个thinkphp项目部署到新浪云,具体步骤看 代码 在代码管理那里可上传压缩包,或者在线编辑(跟记事本差不多),改动大的最好在本地写好再贴上去 数据库 开启共享型mysql服务,目前用了phpmyadmin4.9版本,然后建表或导入sql文件 缓存 开启memcached服务,设置容量16MB(省点钱),其实这个服务我不是很清楚...

相似回答