代码1:for循环批量插入100W数据
<?php set_time_limit(0); $servername = "localhost"; $username = "root"; $password = "123456"; $dbname = "learn"; // 创建连接 $conn = mysqli_connect($servername, $username, $password, $dbname); // 检测连接 if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $sql = "INSERT INTO shop_goods (title, price) VALUES ('商品1',500)"; for ($i=0; $i <1000000 ; $i++) { mysqli_query($conn, $sql); } //计算执行时长 $runtime=time()-$_SERVER['REQUEST_TIME']; echo $runtime; //1.03分钟 mysqli_close($conn); ?>
完成时间:1.03分钟
代码2:将所有插入合并为1条Mysql语句,由于语句较长,请执行mysql命令:set global max_allowed_packet = 2*1024*1024*10;避免超长Mysql无法执行。
<?php set_time_limit(0); $servername = "localhost"; $username = "root"; $password = "123456"; $dbname = "learn"; // 创建连接 $conn = mysqli_connect($servername, $username, $password, $dbname); // 检测连接 if (!$conn) { die("Connection failed: " . mysqli_connect_error()); } $sql = "INSERT INTO shop_goods (title, price) VALUES "; for ($i=0; $i <1000000 ; $i++) { $sql.="('商品1',500),"; } $sql = substr($sql,0,strlen($sql)-1); mysqli_query($conn, $sql); //计算执行时长 $runtime=time()-$_SERVER['REQUEST_TIME']; echo $runtime; //4秒 mysqli_close($conn); ?>
完成时间:4秒
php官方的超全局变量$_SERVER['PHP_SELF']也能直接获取,只不过如果url参数太多也会获取。下面提供一个方法获取/* * 获取当前PHP文件名称 */ if (!function_exists('phpself...
ThinkPHP中有一个debug调试功能,能输出报错文件的信息,并能看到这个函数被哪些函数调用,从框架的启动开始记录,特别方便调试。于是研究了下它的底层给予了实现。<?php //--框架核心--Start //框架内置错误处理 function errDealWith($er...
【一】.迭代器迭代是指反复执行一个过程,每执行一次叫做一次迭代。比如下面的代码就叫做迭代:1. <?php 2. $data = ['1', '2', &...
posix_ttyname - 获取当前终端设备名称。<?php var_dump( posix_ttyname(STDOUT) );我们启动一个终端,执行上面的代码输出:/dev/tty1我们再启动一个终端,执行上面的代码输...
最近在编写windows php多线程的东西,从官网下载了PHP的线程安全版,尝试开启curl扩展extension=php_curl.dllphp -m 却提示 PHP Startup: Unable to load dynamic library 'C:\php\ext\php_curl...
经常我们下载国外资源容易被墙,可以通过php脚本获取远程文件流然后输出给我们的浏览器来下载。<?php //设置下载文件的url $url = 'https://mirrors.huaweicloud.com/ubuntukylin/ubuntukylin-19....