Использование PHP для загрузки изображения и хранения данных в MSSQL

Я пытаюсь загрузить изображение, а также добавить такие детали, как; название, описание и путь к файлу в таблицу базы данных.

Я использую следующий код, но он не добавляет никаких данных в базу данных;

(Сюжет session.php содержит подключение к базе данных.)

<?php include('includes/session.php'); $uploadDir = 'submitted/pictures/'; if(isset($_POST['submit'])) { $fileName = $_FILES['file']['name']; $tmpName = $_FILES['file']['tmp_name']; $fileSize = $_FILES['file']['size']; $fileType = $_FILES['file']['type']; $filePath = $uploadDir . $fileName; $result = move_uploaded_file($tmpName, $filePath); if (!$result) { echo "Error uploading <strong>file</strong>"; exit; } if(!get_magic_quotes_gpc()) { $fileName = addslashes($fileName); $filePath = addslashes($filePath); } $title = $_POST['title']; $description = $_POST['description']; $query = "INSERT INTO $user_pictures (file, title, description) VALUES ('$filePath', '$title', '$description')"; mssql_query($query); } ?> 

Код формы;

 <form name="Image" enctype="multipart/form-data" action="upload-pics2.php" method="POST"> Title <input type="text" name="title" maxlength="100" class="textbox" value="<?php echo $form->value("title"); ?>" /> Description <textarea name="description" rows="8" cols="40" class="textbox" value="<?php echo $form->value("description"); ?>"></textarea> File <input type="file" name="file" accept="image/gif, image/jpeg, image/x-ms-bmp, image/x-png" size="26" class="textbox" /> <input type="submit" name="submit" value="Upload" class="button" /> </form> 

Мне было интересно, может ли кто-нибудь сказать мне, что может пойти не так?

Спасибо.

Этот код не работает из-за нескольких проблем.

Во-первых, вы должны переименовать одно из html-полей или изменить имя поля при проверке на загрузку:

 <input type="submit" name="Upload" value="Upload" class="button" /> 

или

 if(isset($_POST['submit'])) 

Во-вторых, этот скрипт не будет хранить какие-либо данные в БД. Вы должны получать, дезинфицировать и записывать данные в соответствующие поля, например:

 $title = mysql_real_escape_string($_POST['title']); $description = mysql_real_escape_string($_POST['description']); $query = "INSERT INTO $user_pictures (file, title, description) VALUES ('$filePath', '$title', '$description')"; 

Вы должны убедиться, что эти поля присутствуют в БД, если нет – вы должны их создать:

 ALTER table user_pictures ADD column description text, add column title varchar(255); 

У вас есть ошибка в этой строке, if(isset($_POST['Upload']))

Измените это на if(isset($_POST['submit']))

является ли 'submit / pictures /' доступным для записи? также вы можете запустить is_uploaded_file () для дополнительного уровня безопасности.

Также ваш запрос кажется неправильным

 "INSERT INTO $user_pictures ( file ) VALUES ('$filePath')" 

$ user_pictures должна быть таблицей

пытаться

 "INSERT INTO `user_pictures` ( `file` ) VALUES ('$filePath')"