这是查询
BEGIN;
SELECT NumberRenamed, ... FROM 2_1_paidused WHERE CreditAccount = ? AND ...;
SELECT NumberRenamed, ... FROM 2_1_paidused WHERE DebitAccount = ? AND ...;
COMMIT;`
(...
是包含列和条件的长列表。)
并获取SQLSTATE[HY000]: General error
。
已移除BEGIN;
和COMMIT;
,所有内容均按预期正常运行且无错误。
据我所知,如果有多个SELECT
,则需要使用BEGIN;
和COMMIT;
但似乎我错了。那么,这是否意味着允许在没有SELECT
和BEGIN;
的情况下使用多个COMMIT;
?或者我的查询不正确?
答案 0 :(得分:2)
这是四个SQL语句。您不共享任何PHP代码,但显示查询的方式建议您立即将它们启动到单个数据库调用中。显然,running multiple queries in PDO非常棘手 - 不知道你做对了。
在任何情况下,您的交易代码都是多余的:
我很确定您只需要分别运行两个SELECT
查询。
编辑:也许您对BEGIN ... END感到困惑。这是一个完全不同的功能。在MySQL中,您只能在存储例程的主体中使用它。