使用 php PDO 调用多个存储过程
Posted
技术标签:
【中文标题】使用 php PDO 调用多个存储过程【英文标题】:Call multiple Stored procedures with php PDO 【发布时间】:2012-03-07 22:23:24 【问题描述】:我正在使用 PDO 访问我的数据库,并且我有两个存储过程。 现在,我执行调用程序,它工作正常,如下所示:
$q = $db->prepare("CALL sp1();");
$q->execute;
//parsing results here...
$q->closeCursor();
$q2 = $db->prepare("CALL sp2();");
$q2->execute;
///parsing results here...
我想同时调用两个程序准备,所以我尝试了类似的东西 -
$q = $db->prepare("CALL sp1(); CALL sp2()");
$q->execute;
但这只是调用和执行一个存储过程,而不是两者。 有没有办法同时使用和运行多个程序?
【问题讨论】:
底层 mysql 驱动程序不允许在单个查询调用中发出多个查询。这是防止某些形式的 SQL 注入的安全措施。即使您使用的是 PDO,这仍然适用。 真的,如果它们必须一起运行,最好的做法是创建另一个过程,在事务本身中调用它们。 【参考方案1】:一个查询只能运行一个存储过程。
如果您仍然只需要运行一个查询,我建议您编写另一个存储过程,它会一个接一个地调用它们。
【讨论】:
以上是关于使用 php PDO 调用多个存储过程的主要内容,如果未能解决你的问题,请参考以下文章
使用 PDO 从 PHP 调用存储过程到使用 INPUT 参数的 MYSQL Server