Я собрал сценарий, который позволяет пользователям загружать и просматривать документы, однако проблема заключается в том, что один пользователь загружает документ, все зарегистрированные пользователи могут видеть его. Поэтому я пытаюсь настроить загрузку документа на зарегистрированный пользователь... см. код ниже:
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. Но вместо того, чтобы вставлять данные, он выдает мне синтаксическую ошибку рядом с оператором SELECT в инструкции INSERT.
Может ли кто-нибудь сказать мне, почему эта ошибка отображается?
И если вы хотите, чтобы я загрузил любой другой файл, пожалуйста, дайте мне знать.
Благодаря,
Sohail.
Причина, по которой я получал синтаксическую ошибку, заключается в том, что я неправильно сформулировал свой 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));
К счастью, сейчас все работает.
Sohail.
Измените запрос на вставку следующим образом:
INSERT INTO upload( file, type, size, personalid) select '$file', '$file_type', '$file_size', personalid FROM person where personalid='$username'
Для ваших:
$sql = mysqli_query($conn, "INSERT INTO upload( file, type, size, personalid) select '$file', '$file_type', '$file_size', personalid FROM person where personalid='$username'") or die (mysqli_error($conn));