запрос на обновление не работает в php и phpmyadmin - PullRequest
0 голосов
/ 05 апреля 2019

Я пытаюсь создать скрипт загрузки нескольких фотографий в php. Кажется, все работает нормально, кроме запроса на обновление. Я попытался обновить его вручную в phpmyadmin, и проблема не обновляется, но не знаю, что делать. Могут ли эксперты помочь мне решить эту проблему.

вот запрос на обновление:

 try {
          $sql1="update photos 
          set 
          filename='{$db_file_name}',
          upload_date=now() where user='{$_SESSION['id']}' ";
          $st1=$conn->prepare($sql1);
          $st1->execute();

     } 
  catch (Exception $exc) {
          echo $exc->getMessage();   
     }

Ответы [ 2 ]

1 голос
/ 05 апреля 2019

Прежде всего, я бы еще раз проверил правильность всех переменных, которые вы используете (фотографии, имя файла и т. Д.). то есть сравнивайте их по буквам со своей таблицей. Если все выглядит хорошо, немного больше информации не будет плохим. Вы получаете какие-либо ошибки? Если так, что они говорят? Что еще ты пробовал до сих пор?

Более того, я бы посоветовал сделать ваш код немного проще для чтения, например:

/* create a prepared statement */
if ($st1 = $conn->prepare("UPDATE `photos` SET `filename` = ?, `upload_date` = ? WHERE `user` = ?")) {

    /* bind parameters (ssi = string, string, integer)*/
    $st1->bind_param("ssi", $db_file_name, now(), $_SESSION['id']);

    /* execute query */
    $st1->execute();

    /* close statement */
    $st1->close();
}
0 голосов
/ 05 апреля 2019

user - ключевое слово, лучше использовать галочки вокруг него.См .: https://dev.mysql.com/doc/refman/8.0/en/keywords.html

 try {
     $sql = "UPDATE `photos` 
             SET `filename` = :filename, 
                 `upload_date` = NOW() 
             WHERE `user` = :sess_id";
     $stmt = $conn->prepare($sql);
     $stmt->bindValue(":sess_id", $_SESSION['id']);
     $stmt->bindValue(":filename", $db_file_name);
     $stmt->execute();
} catch (....) {
   ....
}

Возможно, что еще лучше, не используйте ключевые слова в качестве имен столбцов, попробуйте userId.

...