因为php脚本有一个执行超时时间默认30秒
所以对批量处理大量查询会因为超时而停止处理
可以在代码第一行加入
set_time_limit(0);//永不超时建议对大量sql处理使用mysql命令行处理
如果你会点php基础我可以给你点参考意见
一个是,你这个文件肯定是txt格式的
$fp = fopen('xxxtxt','r');//用只读方式打开文件
$getsource = fgets($fp);//读取第一行,主要是用于去除第一行
while(!feof($fp)){
$getsource = fgets($fp);//获取有用数据
$insource = explode(" <>", $getsource);//把一行文字变成数组,按<>符号分割
/---------------下面写数据存储的sql-------------------/
/---------------上面写数据存储的sql-------------------/
}
我默认为你对php和mysql是熟悉的,不然你也不会打算用php写这个程序,我只提供你点思路,php对文件 *** 作不熟悉的话你可以参考下这篇文章
>
<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>"; >
按照楼上的方法把模版的输入框弄成<input type='text' name='username[]' />这个,然后$data = $_POST['username'],得到的$data是二维数组,然后添加数据不需要foreach的,直接D('表名')->addAll($data);就可以了
把textarea 中需要分字段的地方加上逗号 到后台 把字串分割转为数组 , (也可以不加逗号 到后台用正则表达式把换行变成逗号)判断是否够50个元素 不够50个元素 补足50个, 然后 用循环 变成带引号的字符串 左后用一句SQL 搞定
textare 的内容
后台的php
<php$arr= explode(',',$_POST[''a1']); //转为数组
$arrlen=50 ; // 有50个字段
$valuestr="'"$_POST['date']"'," //先把date所谓值加进去
for ($i=0;$i<$arrlen;$i++){
if (isset($arr[$i))
$valuestr="'"$arr[$i]"',";
else{
$valuestr="'',"
}
}
$valuestr=substr($valuestr,0,sizeof($valuestr)-1)//去掉最后的逗号
//得到一个字串, 是所有字段的值 用逗号分割, 顺序一定要一致, 而且数目不能多也不能少
$sql="INSERT INTO ka_tan VALUES("$valuest")";
>
在HTML里这样写:
1
2
3
4
5
6
<form
<input type="text" name="haoma[]" />
<input type="text" name="haoma[]" />
<input type="text" name="haoma[]" />
第N个
foreach($_POST['haoma'] as $v){
$sql="insert into haoma values('',$v)";
}
当然这样写一条一条的效率是会慢,再改一下
foreach($_POST['haoma'] as $v){
$values="('',$v),";
}
$values=substr($values,0,strlen($values)-1);
$sql="insert into haoma values $values";
下面的query我就不写了
PHP框架 Laravel Eloquent ORM 批量插入数据是通过传入数组实现的。
比如:
DB::table('users')->insert(array(
array('email' => 'taylor@examplecom', 'votes' => 0),
array('email' => 'dayle@examplecom', 'votes' => 0),
));
以上是 *** 作表users,执行insert语句,参数是一个数组,封装了两条数据,这里可以自定义数据,insert内部就编程批量插入了。
然后调用save方法:
public static function create(array $attributes)
{
$model = new static($attributes);
$model->save();
return $model;
}
以上就是关于想用php向mysql数据库中批量插入20万条记录,但总在不超过2万的时候就停止了全部的内容,包括:想用php向mysql数据库中批量插入20万条记录,但总在不超过2万的时候就停止了、用php将数据写进数据库中、Php textarea多行文本框 如何批量添加进数据库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)