每当我尝试在mysql中调用存储过程以返回结果集时,它总是说“在给定上下文中不能返回结果集”。
我用谷歌搜索它,有人说这是mysql bug,有人说你应该改变你的mysqli驱动程序,然后....
情况:
使用mysqli驱动程序客户端API库版本5.0.51a,PHP版本5.2.4-2ubuntu5.6,使用Zend 1.9 RC 1 Mysqli适配器。
我该怎么办!?
不确定这是否可以解决您的问题,但是尝试使用最新版本的PHP怎么办? PHP 5.2.4绝对是很老的-因此,如果它是PHP mysqli驱动程序中的错误,则可能已从…开始进行了更正。
实际上,在快速搜索之后,似乎出现了一个问题,就像您在PHP 5.2.3和PHP 5.2.4之间引入了这个问题(PHP 5.2.5中仍然存在)。 请参见错误#42548:PROCEDURE xxx无法在给定上下文中返回结果集(在5.2.3中有效!!)
您是否可以使用PHP 5.2.9或5.2.10之类的东西进行测试? 我知道这些不是Ubuntu提供的,即使在上一个Ubuntu稳定版本中也是如此:-(您可能必须从源代码进行编译:-(
另一个想法是尝试使用PDO_MySql适配器:也许可以与那个适配器一起使用? 是否有可能更换适配器而不会造成太多麻烦/无需花费数小时进行测试?
当您使用Zend Framework 1.9时,这是您可能感兴趣的另一篇文章,并且可能更易于测试:升级到1.8后的存储过程错误
一个简单的解决方案是回到Zend Framework 1.7。可以测试吗?
无论如何…祝你好运! 而且,如果您找到了解决方案,请不要忘记指出问题所在以及如何解决;-)