数据库上传无效

时间:2015-06-22 00:50:03

标签: php mysqli

我正在尝试将图像名称和用户名称上传到已创建的数据库并且无法正常工作。代码中的所有内容都在工作(将文件放在文件系统中等),而不是将文件名放在数据库中。我试过没有,现在()和一切,它仍然无法正常工作。

 <?php
include_once("php_includes/check_login_status.php");

if($_FILES['image']['name'])
{
    $fileName = $_FILES["image"]["name"];
    $kaboom = explode(".", $fileName);
    $fileExt = end($kaboom);
    $db_file_name = date("DMjGisY")."".rand(1000,9999).".".$fileExt;  
    $destination_path = getcwd()."/user/$log_username/$db_file_name";
    $target_path = $destination_path . basename( $_FILES["image"]["name"]);
    move_uploaded_file($_FILES['image']['tmp_name'], $target_path);
}

$sql="INSERT INTO photos(user,filename) VALUES('$log_username', '$db_file_name',now()))";

$query = mysqli_query($db_conx, $sql);

    if($query)
    echo "Image uploaded";
    else
    echo "ERROR";
    /*<script> location.replace('../user.php?u=<?php echo $log_username;?>'); </script> */
?>

2 个答案:

答案 0 :(得分:1)

注意:

  • 您的$query返回false,因为您的查询语句错误。您尝试仅在两个 VALUES上绑定三个 columns
  • )变量中的查询中有额外的$sql

您的$sql查询应如下所示:

$sql = "INSERT INTO photos(user, filename)
                    VALUES('$log_username', '$db_file_name')";

或者如果照片表中有datetime数据类型列,它应如下所示:

$sql = "INSERT INTO photos(user, filename, datecolumn) /* REPLACE NECESSARY COLUMN */
                    VALUES('$log_username', '$db_file_name', now())";

答案 1 :(得分:1)

问题在于您的SQL查询。它有一个绑定错误&amp;一个额外的括号。

$sql="INSERT INTO photos(user,filename) VALUES('$log_username', '$db_file_name',now())";

您指定了两个字段user,filename,但是传递了三个参数'$log_username', '$db_file_name',now()

正确的查询将是(假设您在表中有一个DEFAULT时间戳列,否则您还必须指定该字段的列名称,

 $sql="INSERT INTO photos(user,filename) VALUES('$log_username', '$db_file_name')";