MySQL / PHP ошибка запроса на обновление - PullRequest
1 голос
/ 03 сентября 2010

Я выполняю запрос на обновление небольшой группы «элементов» в таблице из PHP.Выполнение кода с помощью «Sequel Pro» выполняет его отлично, а при запуске на PHP с использованием mysql («запрос здесь»);неудачно.

Что-то не так с моим запросом?

UPDATE `service_joblocation` 
   SET  `in_use` =  '1', 
        `in_use_since` =  '1283488686', 
        `in_use_currentcount` =  `in_use_currentcount`+1, 
        `in_use_historicalcount`= `in_use_historicalcount`+1 
  WHERE `id` = 5 
  LIMIT 1;

UPDATE `service_joblocation` 
   SET `in_use` =  '1', 
       `in_use_since` =  '1283488686', 
       `in_use_currentcount` = `in_use_currentcount`+1, 
       `in_use_historicalcount` = `in_use_historicalcount`+1 
 WHERE `id`=16 
  LIMIT 1;

UPDATE `service_joblocation` 
   SET  `in_use` =  '1', 
        `in_use_since` = '1283488686', 
        `in_use_currentcount` = `in_use_currentcount`+1, 
        `in_use_historicalcount` = `in_use_historicalcount`+1 
  WHERE `id`=18 
   LIMIT 1;

UPDATE `service_items` SET  `checkin_user`='9', `checkin_date`='1283488686', `location`='5' WHERE `id`=576;
UPDATE `service_items` SET  `checkin_user`='9', `checkin_date`='1283488686', `location`='16' WHERE `id`=577;
UPDATE `service_items` SET  `checkin_user`='9', `checkin_date`='1283488686', `location`='18' WHERE `id`=578;
UPDATE `service_jobs` SET `checkin_date`='1283488686', `checkin_user`='9',`checkin_department`='1',`checkin_client_person`='0', `items_x`=`items_x`+1 WHERE `id`='518' LIMIT 1;
UPDATE `service_jobs` SET `checkin_date`='1283488686', `checkin_user`='9',`checkin_department`='1',`checkin_client_person`='0', `items_x`=`items_x`+1 WHERE `id`='518' LIMIT 1;
UPDATE `service_jobs` SET `checkin_date`='1283488686', `checkin_user`='9',`checkin_department`='1',`checkin_client_person`='0', `items_x`=`items_x`+1 WHERE `id`='518' LIMIT 1;

Это выходное сообщение ...

У вас ошибка в вашем SQLсинтаксис;проверьте руководство, соответствующее вашей версии сервера MySQL, на предмет правильного синтаксиса для использования рядом с 'UPDATE service_joblocation SET in_use =' 1 ', in_use_since =' 1283488686 'в строке 2

Ответы [ 3 ]

2 голосов
/ 03 сентября 2010

В mysql_query () можно передать только один оператор.

Существуют и другие функции / методы, например, например mysqli :: multi_query () , но не для старого расширения mysql.

0 голосов
/ 03 сентября 2010

Какие существуют типы данных service_joblocation.in_use и service_joblocation.in_use_since? если они числа, попробуйте удалить кавычки, т.е.

UPDATE `service_joblocation` 
SET  `in_use` =  1, 
     `in_use_since` =  1283488686, 
     `in_use_currentcount` =  `in_use_currentcount`+1, 
     `in_use_historicalcount`= `in_use_historicalcount`+1 
WHERE `id` = 5 
LIMIT 1;
0 голосов
/ 03 сентября 2010

Можете ли вы опубликовать код PHP, который выполняет запрос (я полагаю, вы имели в виду mysql_query ()).С первого взгляда запрос выглядит хорошо, но я думаю, что ему может предшествовать что-то неправильное, например, непреднамеренная кавычка или фигурная скобка.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...