Php 数据库上载不工作
我试图上传一个图像的名称和用户的名称到一个已经创建的数据库,它不工作。代码中的所有内容都在工作(将文件放入文件系统等),而不是将文件名放入数据库。我试过不用,now()和所有东西,但它仍然不起作用Php 数据库上载不工作,php,mysqli,Php,Mysqli,我试图上传一个图像的名称和用户的名称到一个已经创建的数据库,它不工作。代码中的所有内容都在工作(将文件放入文件系统等),而不是将文件名放入数据库。我试过不用,now()和所有东西,但它仍然不起作用 <?php include_once("php_includes/check_login_status.php"); if($_FILES['image']['name']) { $fileName = $_FILES["image"]["name"]; $kaboom =
<?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查询有关,请检查我的答案。在正确的查询中仍然有一个额外的)
。已编辑。谢谢你的指针。在正确的查询中,你还有一个额外的)
。我会为你编辑这个。