The maximum execution time of the php page set_time_limit function does not work

PHP中文网
Release: 2023-02-28 20:18:02
Original
6676 people have browsed it

set_time_limit does not take effect or is an invalid solution

exec("set names 'utf8'");//默认编码 $db->setAttribute(PDO_ATTR_ERRMODE, PDO_ERRMODE_EXCEPTION); for($i=1; $i<5000; $i++){ $sql = "insert into `article` (`title`, `content`, `time`, `author`, `ip`) value ('文章标题".$i."', '内容".$i."', '1227237892','kaixin','127.0.0.1')"; $db->exec($sql); } $end = microtime(TRUE); // by bbs.it-home.org $time = $end-$begin; echo "执行了".$time."s"; } catch (Exception $e) { echo "Failed: " . $e->getMessage(); } ?>
Copy after login

When executing this code, only about 1000 pieces of data can be inserted, so the page will not be executed. The execution time of the test page is about 29 seconds, which means the maximum execution time of the page is 30 seconds.

Knowing the set_time_limit function, you can set the page execution time.

The set_time_limit function is used as follows:

This function is used to set the longest execution time of the page. The default value is 30 seconds, set by the max_execution_time variable in php.ini. If set to 0, the maximum time is not limited. When this function is executed, the calculation starts. For example, if the default is 30 seconds, and 25 seconds have been executed before this function is executed, and this function is used to change it to 20 seconds, the maximum execution time of the page will be 45 seconds.

Add this set_time_limit function to the program,

found that the page execution time is still about 29 seconds, which does not work.

I saw someone online saying that if safe_mode in php.ini is on, this function will not be executed. I checked safe_mode=off in my php.in.

Try adding set_time_limit(0); to the for loop.

 '1227237892','kaixin','127.0.0.1')"; $db->exec($sql); } ... ?>
Copy after login

didn’t work either. Finally, I found on the Internet that someone said, "The set_time_limit function is best executed under Linux, and it may not be effective when executed under Windows." I have completely lost confidence in this function, probably because I am running a Windows system.

You can only modify max_execution_time = 30 in php.ini. The default is 30 seconds, I changed it to max_execution_time = 300. Restart the apache server. As a result, the execution time was about 140 seconds, and 5,000 pieces of data were finally inserted. It seems that the execution time of this page under Windows is still controlled in php.ini, modify max_execution_time. If you use PDO to insert data into MYSQL. It takes about 140 seconds to insert 5,000 items, and about 260 seconds to insert 10,000 items.

The above is the content of the maximum execution time of the PHP page. The set_time_limit function does not work. For more related content, please pay attention to the PHP Chinese website (m.sbmmt.com)!

Related articles:

php set_time_limit() Set page execution time

php set_time_limit(0) Function to set program execution time

set_time_limit — Set the maximum script execution time

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!