我已经制作了这段代码,但由于某种原因,当我提交表单时,数据未插入到表名帖子中。在这里我的代码,我可能有一个错字或其他东西,如果有人可以看看它会很棒。
$fnames = Array("","","","","");
$fcnt = 0;
if (isset($_POST['submit']))
{
$allowedExts = array("gif", "jpeg", "jpg", "pjpeg", "x=png","png",);
// do all 5 files!
for ( $fnum = 1; $fnum <= 5; ++$fnum )
{
$curfile = $_FILES["uploaded_file" . $fnum];
if ($curfile["error"] > 0) {
echo "Return Code: " . $curfile["error"] . "<br>\n";
} else {
$ftype = explode( "/", $curfile["type"])[1]; // get the part after the /
$fsize = $curfile["size"];
if ( in_array($ftype, $allowedExts) && $fsize < 20000000 )
{
echo "Upload: " . $curfile["name"] . "<br>\n";
echo "Type: " . $ftype . "<br>\n";
echo "Size: " . ($fsize/1024) . " KB<br>\n";
echo "Temp file: " . $curfile["tmp_name"] . "<br>\n";
$fname = $_SESSION["userid"] . "_" . $curfile["name"];
if (file_exists("uploads/$fname"))
{
echo "$fname already exists.<br>\n";
} else {
move_uploaded_file($curfile["tmp_name"], "uploads/$fname");
$fnames[$fnum-1] = $fname;
++$fcnt;
}
}
else
{
echo "No valid file in slot $fnum<br>\n";
}
}
}
if ( $fcnt > 1 )
{
$sql = "INSERT INTO posts (picture1, picture2, picture3, picture4, picture5) VALUES( ". "'" . implode("','", $fnames) . "')";
echo "DEBUG SQL: $sql <hr>\n";
mysqli_query($sql);
}
}
答案 0 :(得分:0)
快速浏览一下:
A)mysqli_query($sql);
中的错误。
mysqli_ extensin需要连接指针,例如:mysqli_query($dbConn, $sql);
B)另外,将查询修改为mysqli_query($dbConn, $sql) or die(mysqli_error($dbConn));
。它会显示sql错误,如果有的话。
编辑1 如果在放入mysqli_error()后没有出现错误,那么我认为你的脚本永远不会进入sql部分。如果有的话,之前就会停止它。 放在你的脚本之上:
error_reporting(E_ALL);
ini_set('display_errors', '1');
并检查页面上是否出现任何php错误。
答案 1 :(得分:0)
确保您的字段数和值计数相同。同样纠正这个问题:
"'".implode("','", $fnames)."'"
传递的值。
答案 2 :(得分:0)
大部分时间是字符串/整数不匹配。仔细检查所有字符串转义字符。复制最终查询字符串并使用一些外部工具提交查询。您可以开始在查询中硬编码所有数据,然后一次添加一个参数。最终,您将找到导致问题的字段(或字段)。
但是,请先仔细阅读错误信息,而不要盲目猜测造成问题的原因:-)