Я пытался загрузить изображение в базу данных с описанием изображения, а затем получить данные из базы данных и поместить описание под изображение. Я новичок в php. Я не могу найти информацию в Интернете, которую я загрузил в базу данных и отображаю я просто не могу заставить описание работать спасибо за помощь
index.php
<form action = "upload.php" method = "post" enctype = "multipart/form-data">
Select Image File to Upload:
<input type = "file" name = "file">
<br><input type = "text" name = "description" placeholder = "description of your image">
<input type = "submit" name = "submit" value = "Upload">
</form>
загрузить.php
// Create database connection
$db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName);
// Check connection
if ($db->connect_error) {
die("Connection failed: " . $db->connect_error);
}
$statusMsg = '';
// File upload path
$targetDir = "upload/";
$fileName = basename($_FILES["file"]["name"]);
$targetFilePath = $targetDir . $fileName;
$fileType = pathinfo($targetFilePath,PATHINFO_EXTENSION);
if (isset($_POST["submit"]) && !empty($_FILES["file"]["name"])){
// Allow certain file formats
$allowTypes = array('jpg','png','jpeg','gif','pdf');
if (in_array($fileType, $allowTypes)){
// Upload file to server
if (move_uploaded_file($_FILES["file"]["tmp_name"], $targetFilePath)){
// Insert image file name into database
$insert = $db->query("INSERT into images (file_name, uploaded_on) VALUES ('".$fileName."', NOW())");
if ($insert){
$statusMsg = "The file ".$fileName. " has been uploaded successfully.";
}else{
$statusMsg = "File upload failed, please try again.";
}
}else{
$statusMsg = "Sorry, there was an error uploading your file.";
}
}else{
$statusMsg = 'Sorry, only JPG, JPEG, PNG, GIF, & PDF files are allowed to upload.';
}
}else{
$statusMsg = 'Please select a file to upload.';
}
// Display status message
echo $statusMsg;
?>






Ваш код не сохраняет description в базу данных. Вот почему вы не можете показать это.
Сначала вам нужно добавить новый столбец description внутрь таблицы images.
После этого вы должны получить описание, отправленное в запросе, как вы это сделали с $fileName
$description = $_POST['description'];
Теперь вы можете вставить в images:
$insert = $db->query("INSERT INTO images (file_name, description, uploaded_on) VALUES ('".$fileName."', '".$description."', NOW())");
Спасибо, что нашли мою ошибку, @LawrenceCherone. Я тоже считаю, что его код можно улучшить во многих отношениях: стиль, безопасность и т. д. Я не рассматривал дополнительные вопросы в своем ответе, чтобы избежать длинного и развернутого ответа, на который у меня нет времени писать прямо сейчас. Кроме того, я считаю, что предоставление большого количества информации тому, кто, как и он, борется с базовой проблемой, принесет больше путаницы, чем пользы.
спасибо за помощь, я попробовал, и вот что я получил Неустранимая ошибка: невозможно использовать [] для чтения в E:\XAMPP\htdocs\upload.php в строке 15.
@Caconde извините, я поставил дополнительную скобку swrl, извините, я немного запутался с $description = $_POST['описание'];, потому что, где бы я ни вставлял, появляется Примечание: Неопределенный индекс: описание в E:\XAMPP\htdocs\upload.php в строке 12., спасибо за помощь
Странный. Проверьте свою форму внутри index.php, пожалуйста. Поле должно иметь свойство name = "description"
@Caconde, спасибо, я, должно быть, запутался в написании, теперь оно работает, спасибо
$_GETдолжно быть$_POST, я бы отредактировал его, но проблема с SQL-инъекцией требует решения и, возможно, переписана, чтобы ОП делал это правильно, иначе следующим вопросом будет, почему я не могу добавить описаниеIn this image, I'm watching football