php页面运行顺序的困惑

wenjoy 2017-09-19 09:40:51
<?php

$sqlstr = '很多个insert'; (大概300条记录)

//在后面对数据库刚才插入的数据进行了查询,发现数据不对。

//后来发现了 select count(*) 刚才插入的数据。发现每次都不一样。

PHP不是顺序执行的么?应该等插入完成之后才运行之后的。怎么会出现这种情况?

我的环境:PHP7 用的 MYSQLI 连接数据库执行的插入

?>
...全文
504 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenjoy 2017-09-25
  • 打赏
  • 举报
回复
问题出在 $mysqli->multi_query($query) 返回的是第一句的执行值, 如果要知道所有的结果集需要循环。解决代码 if ($mysqli->multi_query($query)) { do { /* store first result set */ if ($result = $mysqli->store_result()) { while ($row = $result->fetch_row()) { printf("%s\n", $row[0]); } $result->free(); } /* print divider */ if ($mysqli->more_results()) { printf("-----------------\n"); } } while ($mysqli->next_result()); }
xuzuning 2017-09-21
  • 打赏
  • 举报
回复
你使用了自定义的数据库操作类,那么你应该给出类定义代码 至少要说明其中 Insert 方法的第二个参数的含义 因为 MySQL 是允许插入指令延后(在空闲时)执行的
wenjoy 2017-09-21
  • 打赏
  • 举报
回复
引用 5 楼 xuzuning 的回复:
你检查了 是否插入成功了吗?
已经上代码了。。紧接着查询,只能查到70条左右,如果过1秒查询,就可以看到数据是齐全的。。所以才问这个运行顺序的问题,难道是多线程的?
wenjoy 2017-09-21
  • 打赏
  • 举报
回复
不是不愿意给。。。而是没啥意义。。特简单的两句话,上代码 $sqlstr 变量里面就是 300句insert $rowcount 就是每次都会变,但是不是300…… $m 是网上找到 mysqli的一个封装类 $reportid = $m->Insert("INSERT INTO `reportlist` (`type`,`reportdate`,`oprtime`) values('1','".date("Y-m-d")."','".$uploadtime."')",true); if($reportid>0){ $result = $m->MultiQuery($sqlstr); }else{ echo '{"status":"error","msg":"数据插入失败"}';exit(); } if($result){ echo '{"status":"success"}'; $rowcount = $m->GetOne("select count(*) from sreport"); }else{ echo '{"status":"error","msg":"数据插入失败"}';exit(); }
xuzuning 2017-09-21
  • 打赏
  • 举报
回复
你检查了 是否插入成功了吗?
u014567183 2017-09-21
  • 打赏
  • 举报
回复
给代码吧,不知道你说的count是什么时候
wenjoy 2017-09-21
  • 打赏
  • 举报
回复
给代码完全无意义啊。。。就是一个简单的批量插入 insert 长字符串 预想的是插入完成之后,查询数据库得出300多条的SUM值,后来数字总对不上,就COUNT了一下,发现在执行SELECT的时候,数据只有70条左右 不是多了,是少了。。。
hongmei85 2017-09-20
  • 打赏
  • 举报
回复
是不是每次多了三百多条啊。
wenjoy 2017-09-20
  • 打赏
  • 举报
回复
顶起来。。。。。。
xuzuning 2017-09-20
  • 打赏
  • 举报
回复
一句代码都不给?

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧