набор обновлений phpmysql при загрузке изображения

#php #mysql #sql-update

#php #mysql #sql-обновление

Вопрос:

Я действительно изо всех сил пытаюсь добиться чего-то очень простого.

По сути, у меня есть вызываемая таблица изображений galleryimages и местоположение на сервере, где хранятся изображения. То, что я пытаюсь сделать, это перезаписать исходное поле для данной категории в таблице во время загрузки.

Мой код добавит новое изображение на сервер, но по какой-то причине не обновит таблицу MySQL (однако я могу добавить к ней новые строки, хотя я хочу сохранить существующие данные в таблице и просто изменить поле «фото», в котором находится изображение).

Мой PHP:

 <?php include 'dbc.php'; page_protect();

    if(!checkAdmin()) {header("Location: login.php");
    exit();
    }

    $host  = $_SERVER['HTTP_HOST'];
    $host_upper = strtoupper($host);
    $login_path = @ereg_replace('admin','',dirname($_SERVER['PHP_SELF']));
    $path   = rtrim($login_path, '/\');

    foreach($_GET as $key => $value) {
        $get[$key] = filter($value);
    }

    foreach($_POST as $key => $value) {
        $post[$key] = filter($value);
    }   
?>


<?php 
    if($_FILES['photo']) 
    {
        $target = "galleries/test/"; 
        $target = $target . basename( $_FILES['photo']['name']); 

       $title = mysql_real_escape_string($_POST['title']); 
        $pic = "galleries/test/" .(mysql_real_escape_string($_FILES['photo']['name']));
    if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) 
    {
        mysql_query("update `galleryimages` set (`title`, `photo`) VALUES ('$title', '$pic')") ;     

        echo "Success"; 
    } 
    else 
    { 
        echo "Failure"; 

    }
    } 
?> 

And the HTML is:

```html
  </head>
  <body>

        <form enctype="multipart/form-data" action="addgallery1.php" method="POST">
          <table width="100%" border="2" cellpadding="5"class="myaccount">
             <tr>
               <td>Category: </td>
               <td><select name="title" id="select8">
                  <option value="Landscape Pots">Landscape Pots</option>

                      </select></td>
            </tr>
           <tr>
               <td>Image: </td>
               <td><input type="file" name="photo" /></td>
            </tr>
             <tr>
               <td colspan="2"><input type="submit" class="CMSbutton" value="Add" /></td>
             </tr>
          </table>
        </form>

        </body>
        </html>
  

Теперь я уверен, что проблема существует в строке:

     if(move_uploaded_file($_FILES['photo']['tmp_name'], $target)) 
    {
        mysql_query("update `galleryimages` set (`title`, `photo`) VALUES ('$title', '$pic')") ;     
        echo "Success"; 
    } 
  

но нужна помощь, чтобы определить, действительно ли это так — и если да, то как я могу заставить его обновить таблицу MySQL — на данный момент PHP повторяет успех, но не вносит никаких обновлений в столбец «фото» в MySQL.

Надеюсь, это имеет смысл, и один из вас, гениев кодирования, может помочь мне решить эту проблему — мне потребовались часы проб и ошибок, но я все еще не могу заставить его работать!!!

заранее спасибо за любую помощь

JD

Ответ №1:

здесь что-то не так

  mysql_query("update `galleryimages` set (`title`, `photo`) VALUES ('$title', '$pic')") ;
  

это должно быть похоже

 mysql_query("update `galleryimages` set `title`='$title', `photo`= '$pic'") ;
  

дополнительная информация здесь: http://dev.mysql.com/doc/refman/5.0/en/update.html

Ответ №2:

Ваш запрос MySQL неверен:

 update `galleryimages` set `title`='$title', `photo`='$pic'
  

Но имейте в виду: это обновит ВСЕ строки в этой таблице! Вы должны добавить WHERE предложение для обновления одной конкретной строки.