插入查询不能超过20次

时间:2014-04-08 07:06:30

标签: php html mysql

我正在使用HTML和PHP在数据库中保存一些数据但不幸的是,插入查询的执行次数不超过20次。实际上在我的web界面中,我创建了一行输入字段,如名称,父名和一个pdf文件,用于上传。底部有两个按钮,一个按钮用于添加另一行字段,另一个按钮用于保存。当用户输入超过20条记录而不是插入查询仅执行20次时,当用户输入的记录不超过20条时,代码工作正常100%,其余记录将被忽略。这是我的示例代码

HTML代码

<td height="30"><input type="text" name="a[]" size="5" /></td>
<td><input type="text" name="b[]" size="10" /></td>
<td><input type="text" name="c[]" size="40" /></td>
<td><input type="text" name="d[]" size="10" /></td>
<td><input type="text" name="e[]" size="10" /></td>
<td><input type="text" name="f[]" size="10" /></td>
<td><input type="text" name="g[]" class="datepick" 
    id="exdate" size="15" onclick="function()"/></td>
<td><input type="file" name="h[]" size="15"  id="file" 
    accept="application/msexcel, application/msword, application/pdf, 
    image/gif, image/png, image/jpg, image/jpeg" />

PHP代码

        $recs = count($_POST["a"]);
        for($i = 0; $i <= $recs - 1; $i++) {
            $a = $i + 1;
            $file_name = $_FILES["file"]["name"][$i];
            $ext = strrchr($file_name, ".");
            $path = "bb/".$newname."-".$a.$ext;
            $status = 1;
            $date = date("Y-m-d",strtotime($_POST["ex"][$i]));
            $query = "INSERT INTO abc (a,b,c,d,e,f,g,g,i,j,k) 
                VALUES (
                    '".$_POST["a"][$i]."', 
                    '".$_POST["b"][$i]."',
                    '".$_POST["c"][$i]."',
                    '".$_POST["d"][$i]."',
                    '".$newname."',
                    '".$_POST["e"][$i]."', 
                    '".$path."',
                    '".$f."',
                    '".$_POST["g"][$i]."',
                    '".$date."',
                    '".$h."'
                );";
            mysql_query($query) or die("Mistake in query");
            move_uploaded_file($_FILES["file"]["tmp_name"][$i], $path);
        }
    }
    header("Location: save.php?saved=true");
}

我无法理解是否有任何默认大小的输入框限制它或PHP代码中有任何错误

2 个答案:

答案 0 :(得分:0)

您的代码有多个缺陷:

  • $f$h未设置
  • 您正在插入(a,b,c,d,e,f,g,g,i,j,k)。请注意g两次。
  • 您没有逃避输入,在任何字段中使撇号'都会破坏您的代码。使用mysql_real_escape_string() ...或者更好的是,根本不要使用mysql_函数,而是使用mysqli_函数或PDO函数。
  • 上传太多文件将达到为php和/或webserver设置的最大post值。 (如果使用的是apache,请检查php.ini和httpd.conf中的值。)

答案 1 :(得分:-1)

试试这个:删除插入查询中的;

您的代码:

 '".$f."',
    '".$_POST["g"][$i]."',
    '".$date."',
    '".$h."'
    );";       ----> remove the ;

正确的代码:

   '".$f."',
    '".$_POST["g"][$i]."',
    '".$date."',
    '".$h."'
    )";