使用一个多行文本框,来循环添加数据
<textarea id="name" name="name" cols="40" rows="10"></textarea>使用换行来隔开每条数据
$name=$_POST['name'];
$name=ereg_replace("\r\n",",",$name);
$name=ereg_replace("\n",",",$name);
$nameArr=split(",",$name);循环添加的语句
for($i=0;$i<count($nameArr);$i++){
 插入的语句 INSERT INTO test(name) VALUES('".$nameArr[$i]."');
}问题来了
当我一次有10000行的数据的时候,我插入到数据库的数据一般只有几千条,2000到3000多不等
当我一次有5000行的数据,插入到数据库的数据有时是5000条没有问题。
就是说,为什么在插入10000行以上的数据的时候,插入到数据库里的记录不是10000条呢?而是几千条记录不等。
为什么数据会丢失?

解决方案 »

  1.   

    for($i=0;$i<count($nameArr);$i++){
     插入的语句 INSERT INTO test(name) VALUES('".$nameArr[$i]."'),
        ('".$nameArr[++$i]."'),
        ('".$nameArr[++$i]."'),
        ('".$nameArr[++$i]."'),
        ('".$nameArr[++$i]."'),
        ('".$nameArr[++$i]."'),
        ('".$nameArr[++$i]."'),
        ('".$nameArr[++$i]."');
    }一次多插入几个内容呢?
      

  2.   

    我刚才测试了500条数据,289条成功插入,多次测试有时是300多条,其余的还是有规律呈现之插入289条,感觉很奇怪
    ++$i来测试就插入251条数据,测试两次插入也是,为什么500行就不能一次全部插入成功呢?
    数据少的话,比如100,200行的数据,插入OK,为什么数据大量就有数据丢失的现象?
      

  3.   

    大量数据的话,执行过程有没有输出什么错误信息?(error_reporting = E_ALL)
    脚本有没有超时(默认是30秒,max_execution_time = 30,改时间长一点试试)
      

  4.   

    恩,找到了  在php.ini里面 我修改成了 130秒了,重启了再测试,没有效果,还是有数据丢失
    添加的速度很快,一般也有5秒之内就添加OK了。
      

  5.   

    配置文件php.ini,修改以后记得重启Apache或IIS.
      

  6.   

    //那有没有可能是SQL错误,比如数据中有引号又没有进行转义,建议执行SQL语句后输出错误看看,比如:
    if (!mysql_query($sql)) die(mysql_error());
      

  7.   

    SQL语句 INSERT INTO test(name) VALUES('".$nameArr[$i]."')
    应该没有问题,只是在插入的时候,有数据丢失引号转义了,另外我输入的数据基本就是英文和中文,没有其他符号
      

  8.   


    function time_test(){
       list($usec, $sec) = explode(" ", microtime());
       return ($usec + $sec);
    }function write_exec_log($page,$time_start,$time_end){
        $time = $time_end - $time_start;
        $log_file = "/xxx/logs/{$page}_php_exec_log";
        $fp = fopen($log_file,'a+');
        $now = date('Y/m/d H:i:s');
        fwrite($fp,$now."\t".$page."\t".$time."\n");
        fclose($fp);
    看一下执行了多长时间
    然后看log记录
      

  9.   

    大家可以测试下,看是否遇到和我一样的问题
    500行的数据,粘贴到多行文本框里循环加到MYSQL表里面
    有时290,390,490这样的插入数,反正就是500行不会全部插入进去,很奇怪,找不出问题所在。