
一次性插入1000条数据比一条一条的插入速度会提升N倍,主要技巧就是在写SQL的上面,没啥难度
insert into table1 value (v1, v2, v3), (x1,x2,x3),
而不是
insert into table1 value (v1, v2, v3);
insert into table1 value (x1,x2,x3);
这样一条一条的插入
希望你能明白
<php if($_POST['do_hf']=='回复')//当'回复'按钮触发执行 { $bbs_hfnr=trim($_POST['textf']);//得到多行文本框 $sql="insert into table (text) values('"$bbs_hfnr"'); //SQL 连接和插入我就不写了 不知道你什么数据库 } echo "<form action='' method='post'>"; echo "<table >"; echo "<tr><td><textarea name='textf' class='inputtext' cols='70' rows='6'></textarea></td></tr>"; echo "<tr><td><input type='submit' name='do_hf' value='回复'>"; <input type='reset' value='重置' /></td></tr>"; echo "</table>"; echo "</form>"; >
因为php脚本有一个执行超时时间默认30秒
所以对批量处理大量查询会因为超时而停止处理
可以在代码第一行加入
set_time_limit(0);//永不超时建议对大量sql处理使用mysql命令行处理
首先10000txt文件要起一个有规律的名称。例如按数字大小。这样便于循环。
如果不是这样,也可以做,但是要遍历目录,判断文件。
$file_name_arr = scandir(文件目录);//遍历文件
unset($file_name_arr[0]);
unset($file_name_arr[1]);
$file_name_arr = array_values($file_name_arr);
foreach($file_name_arr as $file_name){
if(is_file(路径/$file_name){
$str_arr = get_txt(文件地址);
//把数据插入数据库,记得在把内容向表里插的时候要加addslashes(),$str_arr[0]就是标题,$str_arr[1]就是内容
}
}
function get_txt($file){
$str = file_get_contents($file);
$str_arr = preg_split('|\n|',$str);
return $str_arr;
}
建议把10000个文件分成多份执行,避免数据库跑死
input的name用数组,比如:
<tr>
<td><input type="text" name="name1[]"></td>
<td><input type="text" name="name2[]"></td>
</tr>
<tr>
<td><input type="text" name="name1[]"></td>
<td><input type="text" name="name2[]"></td>
</tr>
<tr>
<td><input type="text" name="name1[]"></td>
<td><input type="text" name="name2[]"></td>
</tr>
提交后$_POST['name1']、$_POST['name2']都会以数组的方式储存着3行tr的每个值,通过foreach可以把它们逐行添加进数据表
以上就是关于求php 大量向mysql数据库插入数据最快的方法!!!!全部的内容,包括:求php 大量向mysql数据库插入数据最快的方法!!!!、Php textarea多行文本框 如何批量添加进数据库、想用php向mysql数据库中批量插入20万条记录,但总在不超过2万的时候就停止了等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)