我正在制作图片上传功能,该功能将文件名存储在数据库中,将照片存储在名为uploaded
的文件夹中。这些照片正在移动到uploaded
文件夹,但由于某种原因,我无法将文件名保存在数据库中。
我还确保已连接到数据库并正确引用了所有列。我没有收到任何错误,数据只是没有存储在数据库中。
if(isset($_POST['pp_submit'])){
session_start();
$file = $_FILES['pp_file']['name'];
$ppf_type = $_FILES['pp_file']['type'];
$ppf_size = $_FILES['pp_file']['size'];
$ppf_tmpname = $_FILES['pp_file']['tmp_name'];
$ppf_err = $_FILES['pp_file']['error'];
$var = $_SESSION['id'];
if($ppf_err > 0){ header('Location: ../profile.php');}
move_uploaded_file($ppf_tmpname,"../uploaded/".$file);
mysql_query("INSERT INTO users (profile) VALUES ('$file') WHERE id = '$var'");
if(mysql_affected_rows()>0){
echo "Item added successfully.<br/>";}
else
{ echo "Item addition failed.<br/>"; }
header("Location: ../profile.php?id=$var");
}
我的问题是:为什么文件名不是通过数据库传递的?
move_uploaded_file()
正在工作,而不是直接在它下面的查询。 答案 0 :(得分:6)
那应该是更新查询而不是插入查询:
mysql_query("UPDATE users SET profile = '$file' WHERE id = '$var'");
另请注意:
mysqli_*
功能或使用PDO。