我正在使用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代码中有任何错误
答案 0 :(得分:0)
您的代码有多个缺陷:
$f
和$h
未设置(a,b,c,d,e,f,g,g,i,j,k)
。请注意g
两次。'
都会破坏您的代码。使用mysql_real_escape_string()
...或者更好的是,根本不要使用mysql_
函数,而是使用mysqli_
函数或PDO
函数。答案 1 :(得分:-1)
试试这个:删除插入查询中的;
您的代码:
'".$f."',
'".$_POST["g"][$i]."',
'".$date."',
'".$h."'
);"; ----> remove the ;
正确的代码:
'".$f."',
'".$_POST["g"][$i]."',
'".$date."',
'".$h."'
)";