2014-09-05 25 views
0

我有两个MySQL查询要结合,它可以直接输入到phpmyadmin中。 我得到这些查询是这样的:PHP中的多个SQL查询组合给出错误

$sqlCombine = $sqlStart.";".$sqlStartBefore; 
$conn->query($sqlCombine); 
echo $sqlCombine; 

回声给出了以下几点:

UPDATE rn_slots_availability SET slot_avail_noclean = slot_avail_noclean -1 WHERE hotel_id = '5' AND room_type_id = '6' AND slot_date = '2014-09-05';UPDATE rn_slots_availability SET slot_avail_clean = slot_avail_clean -1 WHERE hotel_id = '5' AND room_type_id = '6' AND slot_date = '2014-09-06' 

复制/粘贴到phpMyAdmin用得好好的,直接执行不,提供了以下错误:

Error: 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 rn_slots_availability SET slot_avail_clean = slot_avail_clean -1 WHERE ho' at line 1 

这是第二个查询,但我不明白为什么?

+1

您不能通过在PHP中用';'分隔它们来执行多个查询。我们也不知道你用于MySQL交互的界面,所以没有人能提出解决方法或适当的方法。 – 2014-09-05 10:13:10

+1

@ N.B .:为了更精确一点,你不能使用'mysql'扩展名 - 但'mysqli'具有'mysqli :: multi_query'。 – CBroe 2014-09-05 10:15:10

+0

@CBroe - 我知道。请阅读我评论的其余部分,我完全知道如果多查询,但以这种方式发布查询在我看来并不好。因此,如果我知道OP使用的界面,我会建议一种不同的,更好的方法。 – 2014-09-05 10:18:23

回答

1

由于某种原因,您当前的配置不支持多查询。如果您不关心执行它们的方式,只需按照以下方式一次执行查询:

$conn->query($sqlStart); 
$conn->query($sqlStartBefore); 

错误应该消失。

+0

谢谢,我会那样做。哪个配置不允许PHP或MySQL? – PrimuS 2014-09-05 10:55:17

+0

来自PHP。正如你所说,它是从MySQL的cmd工作。有可能的解决方案,但为此,需要更多关于脚本的细节。无论如何,我不认为每次执行一个查询都是一个问题,所以你可以像这样离开它。 – 2014-09-05 10:59:04