2015-03-17 2 views
0

Я создаю фотоальбом онлайн, используя mysql и php. Я использую phpmyadmin для управления моей базой данных. До сих пор, у меня есть следующий код:фотоальбом онлайн - загруженное изображение не отображается в базе данных mysql

<form method='post'> 
     Album Name: <input type="text" name="title" /> 
     <input type="submit" name="submit" value="create" /> 
    </form> 
<h4>Add Photo</h4> 
<form enctype="multipart/form-data" method="post"> 
     <?php 
    $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 
    if(isset($_POST['upload'])){ 
     $caption = $_POST['caption']; 
     $albumID = $_POST['album']; 
     $file = $_FILES ['file']['name']; 
     $file_type = $_FILES ['file']['type']; 
     $file_size = $_FILES ['file']['size']; 
     $file_tmp = $_FILES ['file']['tmp_name']; 
     $random_name = rand(); 

     if(empty($file)){ 
      echo "Please enter a file <br>"; 
     } else{ 
      move_uploaded_file($file_tmp, 'uploads/'.$random_name.'.jpg'); 
      mysqli_query($mysqli, "INSERT INTO photos (caption, image_url, date_taken, imageID) 
         VALUES($caption, $random_name.jpeg, NOW(), $albumID)"); 
      echo "Photo successfully uploaded!<br>"; 
    } 
    } 
    ?> 
    Caption: <br> 
    <input type="text" name="caption"> 
    <br><br> 
    Select Album: <br> 
    <select name="album"> 
    <?php 
    $mysqli = new mysqli(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME); 
    $result = $mysqli->query("SELECT * FROM albums"); 
    while ($row = $result->fetch_assoc()) { 
     $albumID = $row['albumID']; 
     $title = $row['title']; 
     echo "<option value='$albumID'>$title</option>"; 
    } 
    ?> 
    </select> 
    <br><br> 
    Select Photo: <br> 
    <input type="file" name="file"> 
    <br><br> 
    <input type="submit" name="upload" value="Upload"> 
</form> 

С помощью этого кода, я могу успешно загрузить фотографию в папку «загрузки» на моем сервере. Однако, когда я проверяю phpmyadmin, в таблице «Фотографии» не добавляется фотография. Я хотел бы добавить, что схемы для моих 'фотографий' и таблица 'альбомов' являются: ФОТО (подпись, IMAGE_URL, date_taken, ImageID, идентификатор пользователя) ALBUMS (название, DATE_CREATED, date_modified, ALBUMID)

Что же я неправильно с моим кодом, чтобы загруженные фотографии не отображались в базе данных?

Спасибо!

+0

Читайте на errorchecking: это 'move_uploaded_file' успеха? Успешен ли ваш запрос? (Если нет, укажите ошибки mysql). Вы также можете более четко отделить свою форму от логики. –

ответ

0

Синтаксис SQL неверен. Лучше процитировать .... И не забывай полоснул :)

mysqli_query($mysqli, "INSERT INTO photos (caption, image_url, date_taken, imageID) 
VALUES('" . addslashes($caption) . "', '" . $random_name . ".jpeg', NOW(), " . $albumID . ")"); 
+0

спасибо! но он по-прежнему не добавляется в базу данных. – mar

+0

Переместите строки подключения базы данных вверху страницы. – cyadvert

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