MySQL/PHP update query error

空扰寡人 提交于 2019-12-11 11:03:08

问题


I'm running a query to update a small group of 'items' in a table, from PHP. Running the code with "Sequel Pro" executes it perfectly, while running it on PHP using mysql("query here"); fails miserably.

Is there anything wrong with my query?

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;

This is the output message...

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'UPDATE service_joblocation SET in_use = '1', in_use_since = '1283488686' at line 2


回答1:


You can only pass a single statement to mysql_query().

There are other functions/methods like e.g. mysqli::multi_query() but not for the old mysql extension.




回答2:


Can you post the PHP code which executes the query (I assume you meant mysql_query()). The query looks fine to me at a glance, but I think it may be preceded by something that is incorrect, such as an unintentional quotation mark or a brace.




回答3:


What are the data types of service_joblocation.in_use and service_joblocation.in_use_since? if they are numbers, try removing the quotation marks, i.e.

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;


来源:https://stackoverflow.com/questions/3633100/mysql-php-update-query-error

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!