当我尝试在发送回结果集的
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.4肯定很老 – 所以,如果它是PHP的MysqLi驱动程序中的一个错误,它可能已被纠正,因为……
实际上,在快速搜索之后,似乎在PHP 5.2.3和PHP 5.2.4之间引入了一个类似于您正在目击的问题(并且仍然在PHP 5.2.5中).
见bug #42548 : PROCEDURE xxx can’t return a result set in the given context (works in 5.2.3!!)
您是否可以使用PHP 5.2.9或5.2.10进行测试?
我知道这些不是由Ubuntu提供的,即使在最后一个Ubuntu稳定版本中:-(你可能需要从源代码编译:-(
另一个想法是尝试使用PDO_MysqL适配器:也许它适用于那个?
有可能更换适配器而不会造成太多麻烦/无需花费数小时进行测试?
当您使用Zend Framework 1.9时,这是您可能感兴趣的另一篇文章,可能更容易测试:stored procedure error after upgrade to 1.8
一个简单的解决方案就是回到Zend Framework 1.7;你有可能只是为了测试吗?