2013-07-18 66 views
0

我使用PDO运行MSSQL存储过程很多,但偶尔会遇到存储过程无法正常运行的问题。运行MSSQL的PHP​​ PDO存储过程

目前,我有一个相当复杂的存储过程,包括各种插入临时表和嵌套循环语句。当我从他们的SQL管理器执行存储过程时,它运行良好。大约需要1.5分钟才能完成,但没有问题就完成了。

问题是,当我从PHP运行它是这样的:

$q = $dbh->prepare('exec sp_mysp'); 
$q->execute(); 

我检查了$q->errorInfo();,并没有错误,但该过程不完整。它看起来像是在存储过程的嵌套循环中间倾倒出来的。

存储过程在使用PDO从PHP调用时可以执行的操作有什么限制吗?另外,是否有一个很好的方法来调试,因为我卡住了。

任何帮助,这将是伟大的。

谢谢!

+0

我认为什么包含存储过程是问题,而不是你如何执行从PHP。为了修复它,尝试单独执行execute sql语句。 – user1929959

+0

存储过程中的所有内容都可以正常运行。我可以部分运行它,或者我可以从MSSQL Management Studio运行整个存储过程。它运行良好,但不是从PHP使用PDO执行时。谢谢 – Sequenzia

回答

0

我遇到了同样的问题,我的Stored Proc通过SQL管理工作室执行得很好,但当我通过PHP使用PDO调用EXECUTE时没有执行此问题。我没有传递参数等

由于什么原因,事实是我将值插入临时表 - 只要我用实际的表替换临时表,存储过程就会执行正常。