Php &引用;SQLSTATE[HY000]:一般错误";-一条语句中的多个SQL查询

Php &引用;SQLSTATE[HY000]:一般错误";-一条语句中的多个SQL查询,php,mysql,pdo,xampp,Php,Mysql,Pdo,Xampp,我的php脚本中有一个由PDO处理的查询。确切地说,它是一个语句中的两个查询。查询本身在SQL客户机中运行良好(我使用的是HeidiSQL)。然而,PHP给了我这个错误:“SQLSTATE[HY000]:一般错误”,没有其他错误。没有错误号码或消息 有什么方法可以调试查询吗?我认为查询本身并没有错误,所以我不知道出了什么问题。mysql错误日志中没有显示任何内容。我已经启用了mysql通用日志,但它只记录查询本身而不显示错误 我的堆栈:XAMPP1.8、Apache 2.4.3、PHP5.4.7

我的php脚本中有一个由PDO处理的查询。确切地说,它是一个语句中的两个查询。查询本身在SQL客户机中运行良好(我使用的是HeidiSQL)。然而,PHP给了我这个错误:“SQLSTATE[HY000]:一般错误”,没有其他错误。没有错误号码或消息

有什么方法可以调试查询吗?我认为查询本身并没有错误,所以我不知道出了什么问题。mysql错误日志中没有显示任何内容。我已经启用了mysql通用日志,但它只记录查询本身而不显示错误

我的堆栈:XAMPP1.8、Apache 2.4.3、PHP5.4.7、MySQL 5.5.27

这是我的问题(相当长):

所以现在“一般错误”已经消失了,但我得到了

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax

就在第一个查询之后,这意味着PDO只运行一个查询并拒绝继续…

不需要创建临时表。将两个语句合并为一个应该可以解决问题

SELECT  COUNT(*) AS number
FROM    (giant select statement) temp
WHERE   overdue >= :from AND overdue <= :to AND overdue != 0
选择COUNT(*)作为数字
FROM(巨型select语句)temp

WHERE逾期>=:from和逾期我终于找到了一种一次性运行多个查询的方法。似乎MySQLi->multi_query允许这样做。再次对PDO深感失望。

这可能有助于你解决问题,但还没有解决。尽管阅读了这两篇文章…谢谢,我知道在这种情况下可以将所有内容合并到一个查询中,但是我仍然需要这个功能,因为这只是初步的探索,我们可以说,我还有其他更复杂的东西,肯定需要这个功能。这是一个功能,不是bug。我在这些查询中没有任何用户输入,所以安全性(SQL注入)不是问题,因此我认为PDO应该有多个查询作为一个功能。为了满足您的特定需求?这不仅仅是我的特定需求,MySQLi->multi_query的存在证明了这一点。我在这个问题上做了广泛的搜索,有很多人在寻找这个功能。
SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax
SELECT  COUNT(*) AS number
FROM    (giant select statement) temp
WHERE   overdue >= :from AND overdue <= :to AND overdue != 0