一尘不染

无法在给定的上下文中返回结果集

php

每当我尝试在mysql中调用存储过程以返回结果集时,它总是说“在给定上下文中不能返回结果集”。

我用谷歌搜索它,有人说这是mysql bug,有人说你应该改变你的mysqli驱动程序,然后....

情况:

使用mysqli驱动程序客户端API库版本5.0.51a,PHP版本5.2.4-2ubuntu5.6,使用Zend 1.9 RC 1 Mysqli适配器。

我该怎么办!?


阅读 289

收藏
2020-05-29

共1个答案

一尘不染

不确定这是否可以解决您的问题,但是尝试使用最新版本的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。可以测试吗?

无论如何…祝你好运!
而且,如果您找到了解决方案,请不要忘记指出问题所在以及如何解决;-)

2020-05-29