Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/236.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 数据库上载不工作_Php_Mysqli - Fatal编程技术网

Php 数据库上载不工作

Php 数据库上载不工作,php,mysqli,Php,Mysqli,我试图上传一个图像的名称和用户的名称到一个已经创建的数据库,它不工作。代码中的所有内容都在工作(将文件放入文件系统等),而不是将文件名放入数据库。我试过不用,now()和所有东西,但它仍然不起作用 <?php include_once("php_includes/check_login_status.php"); if($_FILES['image']['name']) { $fileName = $_FILES["image"]["name"]; $kaboom =

我试图上传一个图像的名称和用户的名称到一个已经创建的数据库,它不工作。代码中的所有内容都在工作(将文件放入文件系统等),而不是将文件名放入数据库。我试过不用,now()和所有东西,但它仍然不起作用

 <?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> */
?>
注意:
  • 您的
    $query
    返回
    false
    ,因为您的查询语句是错误的。您尝试仅在两列
    上绑定三个
  • $sql
    变量内的查询中有额外的
您的
$sql
查询应如下所示:

$sql = "INSERT INTO photos(user, filename)
                    VALUES('$log_username', '$db_file_name')";
$sql = "INSERT INTO photos(user, filename, datecolumn) /* REPLACE NECESSARY COLUMN */
                    VALUES('$log_username', '$db_file_name', now())";
或者,如果您的照片表中有一个
datetime
数据类型列,它应该如下所示:

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

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

$sql="INSERT INTO photos(user,filename) VALUES('$log_username', '$db_file_name',now())";
您正在指定两个字段
user,filename
,但现在传递三个参数
“$log\u username”,“$db\u file\u name”(

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


分享错误。这样人们就可以真正了解你的问题了。错误是我的回音,这个回音没有实际的错误。echo(“错误描述:”.mysqli_错误($db_conx));错误描述:您的SQL语法有错误;检查与您的MySQL服务器版本对应的手册,以了解在第1行的“')”附近使用的正确语法问题与您的sql查询有关,请检查我的答案。在正确的查询中仍然有一个额外的
。已编辑。谢谢你的指针。在正确的查询中,你还有一个额外的
。我会为你编辑这个。