2016-02-08 6 views
0

Im используя MySQL, когда я хочу, чтобы обновить столбец с этим запросомкак обновить столбцы с пустым значением

UPDATE books 
    SET ISBN = $ISBN 
    , Title = '$BookTitle' 
    , PublicationDate = '$PublicationDate' 
    , Publisher = '$Publisher' 
    , Edition = $Edition 
    , Volume = $Volume 
    , books.Author_AuthorId = $AuthorId 
WHERE ISBN = $GETISBN; 

с PHP он работает хорошо, пока все входные заполнены в HTML форме, но если один вход пустой или я очистил предыдущие данные в форме HTML и отправлю форму, она выдает эту ошибку

У вас возникла ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии вашего сервера MySQL, для правильного синтаксиса для использования рядом с 'Volume = 1, books. Author_AuthorId = 3 WHERE ISBN = 5456165156' в строке 2

Что я должен делать?

+0

Скорее всего, '$ Volume' содержит одну цитату или что-то, что нарушает запрос. Рассматривали ли вы подготовку и выполнение этого? –

+0

Возможно, потому что '$ Edition' является строковым значением и отсутствует его одинарные кавычки. –

+1

Также '$ ISBN', вероятно, не является строго числовым и поэтому также требует кавычек. Вы обнаружите, что они включают в себя дефисы, которые MySQL неправильно интерпретирует как выражение вычитания (также они часто заканчиваются на 'X') –

ответ

1

Вот запрос, который я вторит

UPDATE `books` SET `ISBN`=5456165156,`Title`='500 Notice About Java',`PublicationDate`='1390-05-25', `Publisher`='Qods Publication',`Edition`=,`Volume`=1, `books`.`Author_AuthorId`=3 WHERE `ISBN`=5456165156 

Пока $ Редакция пуста После этого изменение запроса следующего

`Edition`= 

Вот почему Mysql не может понять, какое значение должно быть set to Edition

+0

Lol ... Так я предлагаю повторить ваш запрос – devpro

+2

Это не отвечает на вопрос. Он показывает причину ошибки, но не объясняет, как ее исправить. – Barmar

+0

Если '$ Edition' имеет одинарные кавычки, вы не получите эту ошибку в этом случае, но использование подготовленного заявления полностью устранит проблему. И да, вы должны указать ISBN, потому что контрольная цифра составляет 'X' в 10% случаев. https://en.wikipedia.org/wiki/Check_digit#ISBN_10 –

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