Я пытаюсь загрузить свою фотографию в папку и хранилище ссылок на файлы в базу данных, хотя хранилище файлов находится в папке, но, к сожалению, не хранит ссылку в базе данных. Пожалуйста, посмотрите, где я делаю ошибку.
<?php
include('dbconnection.php');
if (count($_FILES["file"]["name"]) > 0)
{
sleep(3);
for($count=0; $count<count($_FILES["file"]["name"]); $count++)
{
$file_name = $_FILES["file"]["name"][$count];
$tmp_name = $_FILES["file"]['tmp_name'][$count];
$file_array = explode(".", $file_name);
$file_extension = end($file_array);
if (file_already_uploaded($file_name, $connect))
{
$file_name = $file_array[0] . '-'. rand() . '.' . $file_extension;
}
$location = 'files/' . $file_name;
if (move_uploaded_file($tmp_name, $location))
{
$stmt= $connect->prepare("INSERT INTO tbl_image (image_name) VALUES (:image_name)");
$stmt->bindParam(':image_name', $file_name);
$stmt->execute();
}
}
}
function file_already_uploaded($file_name, $connect)
{
$statement = $connect->prepare("SELECT image_name FROM tbl_image WHERE image_name = '".$file_name."'");
$statement->execute();
$number_of_rows = $statement->rowCount();
if ($number_of_rows > 0)
{
return true;
}
else
{
return false;
}
}
?>






сохранить имя изображения как местоположение с именем файла:
$location = 'files/' . $file_name;
if (move_uploaded_file($tmp_name, $location))
{
$stmt= $connect->prepare("INSERT INTO tbl_image (image_name) VALUES (:image_name)");
$stmt->bindParam(':image_name', $location.'/'.$file_name);
$stmt->execute();
}
после вышеуказанных изменений у меня возникла следующая ошибка Uncaught Error: Невозможно передать параметр 2 по ссылке в D: \ xampp \ htdocs \ uploads \ upload.php: 22
Вы можете использовать для него одну переменную, например $ filePath = $ location. '/'. $ File_name; а затем сохраните переменную $ filePath в параметре image_name
Я уже выполнил приведенные выше инструкции, например $ img = $ location. '/'. $ File_name; а затем передайте $ img
хорошо спасибо. Пожалуйста, дайте положительный отзыв, если это сработает для вас. Благодарность
Вы не можете привязать параметр к строке. Функция bindParam требует, чтобы вы передали ей только переменную в контексте by reference.
но не знаю, почему, когда я объявляю, переменная все еще не работает.
Может быть другое поле tbl_image, для которого требуется значение, которое вы не устанавливаете. Если у вас есть phpmyadmin или аналогичный инструмент, попробуйте запустить строку SQL, которая не позволяет четко определить проблему.