查询未插入数据库

时间:2014-09-08 10:03:21

标签: php mysql

我已经制作了这段代码,但由于某种原因,当我提交表单时,数据未插入到表名帖子中。在这里我的代码,我可能有一个错字或其他东西,如果有人可以看看它会很棒。

$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);
    }
}

3 个答案:

答案 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)

大部分时间是字符串/整数不匹配。仔细检查所有字符串转义字符。复制最终查询字符串并使用一些外部工具提交查询。您可以开始在查询中硬编码所有数据,然后一次添加一个参数。最终,您将找到导致问题的字段(或字段)。

但是,请先仔细阅读错误信息,而不要盲目猜测造成问题的原因:-)