加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

关于php页面最大执行时间问题(set_time_limit函数在windows下不起作用的解决)

发布时间:2020-05-25 03:24:26 所属栏目:PHP 来源:互联网
导读:首先说一下我的运行环境winxp+php5.2.5+apache2.2.8+5.0.27-community-nt我想测试插入5万条数据到数据库里。页面如下代码?phpglobal$begin;global$end;$begin=microtime(TRUE);try{$dsn=mysql:host=localhost;dbname=kaixin;$db=newPDO($dsn,root,111);$db-ex

首先说一下我的运行环境winxp+php5.2.5+apache2.2.8+5.0.27-community-nt

我想测试插入5万条数据到数据库里。

页面如下

<div class="cnblogs_code" onclick="cnblogs_code_show('02e9d437-f195-4386-b5c7-85b5d2666f15')">
<img style="display: none" id="code_img_closed_02e9d437-f195-4386-b5c7-85b5d2666f15" class="code_img_closed" src="https://www.jb51.cc/res/2019/02-07/12/1c53668bcee393edac0d7b3b3daff1ae.gif" alt=""><img id="code_img_opened_02e9d437-f195-4386-b5c7-85b5d2666f15" class="code_img_opened" onclick="cnblogs_code_hide('02e9d437-f195-4386-b5c7-85b5d2666f15',event)" src="https://www.jb51.cc/res/2019/02-07/12/405b18b4b6584ae338e0f6ecaf736533.gif"&gt;<span class="cnblogs_code_collapse">代码
<div id="cnblogs_code_open_02e9d437-f195-4386-b5c7-85b5d2666f15">

执行这段代码,只能插入大概1000条左右的数据,这样页面就不执行了。测试页面的执行时间大概都是29秒左右,也就是页面的最大执行时间 是30秒。

知道set_time_limit函数,可以设置页面执行时间。

set_time_limit函数用法如下:

本函式用来设定该页最久执行时间。内定值是 30 秒,在 php.ini 中的 max_execution_time 变数设定,若设定为 0 则不限定最久时间。当执行到该函数时,才开

始计算。例如,若内定是 30 秒,而在执行到该函数前已执行了 25 秒,而用本函式改为 20 秒,则该页面最长执行时间为 45 秒。

我把这个set_time_limit函数加到了程序里,

发现页面执行时间还是29秒左右,没有起作用。

看到网上有人说,php.ini里的safe_mode如果为on,本函数不执行。查了我的php.in里的safe_mode=off。

我又试着把set_time_limit(0);加入到for循环里。

<div class="cnblogs_code" onclick="cnblogs_code_show('ccab3e3f-f29a-44d5-a766-c8f9463589db')">
<img style="display: none" id="code_img_closed_ccab3e3f-f29a-44d5-a766-c8f9463589db" class="code_img_closed" src="https://www.jb51.cc/res/2019/02-07/12/1c53668bcee393edac0d7b3b3daff1ae.gif" alt=""><img id="code_img_opened_ccab3e3f-f29a-44d5-a766-c8f9463589db" class="code_img_opened" onclick="cnblogs_code_hide('ccab3e3f-f29a-44d5-a766-c8f9463589db',event)" src="https://www.jb51.cc/res/2019/02-07/12/405b18b4b6584ae338e0f6ecaf736533.gif"&gt;<span class="cnblogs_code_collapse">代码
<div id="cnblogs_code_open_ccab3e3f-f29a-44d5-a766-c8f9463589db">

也 没有起作用。

最后在网上查到,有人说,“set_time_limit函数最好是在linux下执行,windows执行可能也无效”。彻底对这个函数失去信心 了,估计是因为我是windows系统的原因。

只能修改php.ini里的max_execution_time = 30了。这个默认是30秒,我修改为max_execution_time = 300.重新启动apache服务器。

结果执行时间为140秒左右,5000条数据终于插入了。

看来,windows下这个页面执行时间还是在php.ini里控制,修改max_execution_time。

从上面的实例也可以得出,如果用PDO往MYSQL里面插入数据的话。插入五千条大概140多秒时间,插入1万条大概260多秒时间。

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读