我已经整理了一个脚本,允许用户上传和查看文档,但是,我遇到的问题是,如果一个用户上传文档,所有注册用户都可以看到..所以我试图建立在登录用户上的文档上传...请参阅以下代码:
uploadconfig.php
<?php
include("dbconfig.php");
require("upload.php");
if(isset($_POST['btn-upload'])){
$file = $_FILES['file']['name'];
$file_loc = $_FILES['file']['name'];
$file_size = $_FILES['file']['size'];
$file_type = $_FILES['file']['type'];
$folder = "uploads/";
move_uploaded_file($file_loc, $folder.$file);
$sql = mysqli_query($conn, "INSERT INTO upload( file, type, size, personalid) VALUES (select personalid FROM person where personalid='$username'),('$file', '$file_type', '$file_size') ") or die (mysqli_error($conn));
if($sql){
header("location:upload.php?msg0=Document upload successful.");
}
else {
header("location:upload.php?msg1=Document upload failed.");
}
}
?>
我'需要'upload.php文件的原因是因为用户会话变量在该文件中,我想通过要求该文件,我能够将该变量传递给我的uploadconfig.php文件。但是它不是插入数据,而是在INSERT语句中的SELECT语句附近抛出语法错误。
有谁能告诉我为什么会出现这个错误?
如果您希望我上传任何其他文件,请告知我们。
谢谢,
苏海尔。
答案 0 :(得分:0)
更改您的插入查询,如下所示:
User
对于你的:
INSERT INTO upload( file, type, size, personalid) select '$file', '$file_type', '$file_size', personalid FROM person where personalid='$username'
答案 1 :(得分:0)
我收到语法错误的原因是因为我错误地构造了我的SQL语句。请参阅下面的更改:
在:
$sql = mysqli_query($conn,"INSERT INTO upload(file, type, size, personalid) VALUES (select personalid FROM person where personalid='$username'),('$file', '$file_type', '$file_size') ") or die (mysqli_error($conn));
在:
$sql = mysqli_query($conn, "INSERT INTO upload (personalid, file, type, size) values ((select personalid from person where username='$username'), '$file', '$file_type', '$file_size')") or die (mysqli_error($conn));
幸运的是,它现在已经全部运行。
苏海尔。