2013-03-06 3 views
0

Я пытаюсь создать систему галереи, которая создает записи на изображение в таблице, позволяя сценарию извлекать все изображения с определенными значениями. На данный момент мне удалось загрузить файл, хотя он не вводит имя файла и идентификатор галереи в мою таблицу - это вовсе не создает строку. Ниже приведен код, любая помощь будет потрясающей :)! Я перепутал с несколькими вещами, хотя загрузка файлов и подобных мне не очень сильная.MySQL не вставляет данные в таблицу при загрузке файла

<?php 
require "common.php"; 
$con = mysql_connect("localhost","$username","$password"); 
mysql_select_db("$dbname", $con); 
if (!$con) 
    { 
    die('Could not connect: ' . mysql_error()); 
    } 
$id = $_GET['id']; 
$query2 = mysql_query("SELECT id,title,date FROM galleries WHERE id = $id"); 
    if (!$query2) { 
     echo 'Could not run query: ' . mysql_error(); 
     exit; 
} 
$row = mysql_fetch_row($query2); 
$allowedExts = array("jpg", "jpeg", "gif", "png"); 
$extension = end(explode(".", $_FILES["file"]["name"])); 
if ((($_FILES["file"]["type"] == "image/gif") 
|| ($_FILES["file"]["type"] == "image/jpeg") 
|| ($_FILES["file"]["type"] == "image/png") 
|| ($_FILES["file"]["type"] == "image/pjpeg")) 
&& ($_FILES["file"]["size"] < 2000000) 
&& in_array($extension, $allowedExts)) 
    { 
    if ($_FILES["file"]["error"] > 0) 
    { 
     echo "Return Code: " . $_FILES["file"]["error"] . "<br>"; 
    } 
    else 
    { 
    echo "Upload: " . $_FILES["file"]["name"] . "<br>"; 
    echo "Type: " . $_FILES["file"]["type"] . "<br>"; 
    echo "Size: " . ($_FILES["file"]["size"]/1024) . " kB<br>"; 
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br>"; 

    if (file_exists("../galleries/images/" . $_FILES["file"]["name"])) 
     { 
     echo $_FILES["file"]["name"] . " already exists. "; 
     } 
    else 
     { 
     move_uploaded_file($_FILES["file"]["tmp_name"], 
     "../galleries/images/" . $_FILES["file"]["name"]); 
     $file = '["file"]["name"]'; 
     $sql="INSERT INTO images (url, gallery) 
     VALUES 
    ('$_POST[$file]','$_POST[$id]')"; 
    header("Location: ../../../gallery.php?id=" . $row[0]); 
    die("Redirecting to: admin.php"); 
if (!mysql_query($sql,$con)) 
    { 
    die('Error: ' . mysql_error()); 
    } 
     } 
    } 
    } 
else 
    { 
    echo "Invalid file"; 
    } 
?> 

ответ

0

Проблема заключается в том, что вы поменяете и убить ваш сценарий, прежде чем выполнить запрос:

$sql="INSERT INTO images (url, gallery) 
     VALUES 
     ('$_POST[$file]','$_POST[$id]')"; 
header("Location: ../../../gallery.php?id=" . $row[0]); 
die("Redirecting to: admin.php"); 
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ nothing after this gets executed 
if (!mysql_query($sql,$con)) 
    ^^^^^^^^^^^^^^^^^^^^^^ this query will never run 
    ... 

И вы действительно должны перейти на PDO (или MySQLi) и подготовленные заявления, чтобы избежать SQL проблем инъекций.

+1

Спасибо! Теперь он вставляет строки в таблицу, просто нужно выработать несколько ошибок. Думаю, я посмотрю PDO. – 2013-03-06 18:35:04

Смежные вопросы