Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 插入查询的次数不超过20次_Php_Html_Mysql - Fatal编程技术网

Php 插入查询的次数不超过20次

Php 插入查询的次数不超过20次,php,html,mysql,Php,Html,Mysql,我使用HTML和PHP在数据库中保存一些数据,但不幸的是,插入查询的执行次数不超过20次。实际上,在我的web界面中,我创建了一行输入字段,如姓名、父亲姓名和一个用于上传的pdf文件。底部有两个按钮,一个用于添加一行字段,另一个用于保存。当用户输入的记录不超过20条时,代码可以100%正常工作。当用户输入的记录超过20条时,插入查询仅执行20次,其余记录被忽略。这是我的示例代码 HTML代码 <td height="30"><input type="text" name="a[

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

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代码中是否存在任何错误;在插入查询中

您的代码:

 '".$f."',
    '".$_POST["g"][$i]."',
    '".$date."',
    '".$h."'
    );";       ----> remove the ;
正确代码:

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

您的代码有多个缺陷:

未设置$f和$h 你正在插入a,b,c,d,e,f,g,g,i,j,k。注意这里的g两次。 您不会逃避输入,在任何字段中使用撇号'都会破坏代码。使用mysql\u real\u escape\u字符串。。。或者更好的是,不要使用mysql函数,而是使用mysqli函数或PDO函数。 上载过多的文件将达到为php和/或Web服务器设置的最大post值。如果您使用的是apache,请检查php.ini和httpd.conf中的值。
1.停止使用mysql函数——它们已经被弃用多年了。在准备好的语句中使用MySQLi或PDO。2.您的代码在SQL注入方面是非常脆弱的——如果您使用准备好的语句和绑定变量,就不会这样了。3.设置位置标题后始终退出或退出,否则脚本将继续。4.不要死亡-改用常规错误处理。你需要检查最大文件上传限制。看起来你正在每个循环中上载文件,当限制打破时,代码也会中断。@h2ooooooo不确定在头重新定位后代码是否得到解释,我实际上认为不是。我看不出你给出的代码片段有错误。如果您尝试打印\u r$\u帖子;你得到的是完整的输入元素数还是前20个?@Loïc可以随意测试它,可能会有错误,但正如我提到的,这只是一个示例代码