调用存储过程发生Commands out of sync错误

#1 verderer

通过findsql调用存储过程,然后再访问数据库,无论什么语句都报错,麻烦斑竹看看有啥解决办法没?执行错误: Commands out of sync; you can't run this command now

在网上尝试用mysql_next_result 和mysql_store_result来处理,但是访问报错

大家碰到过这个情况没

2010-08-02 16:35:00

#2 jake

这种我没遇过,这里我只能说说怎么获取mysql的链接资源句柄。

$a = spClass('lib_guestbook');
那么,mysql_系列函数的mysql链接资源句柄是$a->_db->conn;

你可以取得这个链接资源句柄,然后用于执行mysql_系列函数,比如说执行mysql_use_result()

2010-08-02 18:03:29

#3 verderer

我直接在mysql.php文件里面改都不行,不识别

2010-08-02 18:26:17

#4 jake

这样,建议你直接使用PHP的mysql_系列函数来试试

http://cn.php.net/manual/en/function.mysql-connect.php

直接使用php.net上面的示例代码,来测试你的SQL语句。我想,如果这样都会出错的话,那么就要检查一下你的存储过程和SQL语句有无问题了。

另外你也可以通过其他的mysql客户端来测试。

其实speedphp框架内的mysql链接很简单,仅是使用了mysql_系列函数而已。

2010-08-02 18:33:05

#5 hanyegudeng

今天我也遇到了这样的问题,sp版本是3,1,89的。出错提示:
select count(id) as count from a
执行错误: Commands out of sync; you can't run this command now。
lz是怎么解决的呢?

2012-02-05 14:22:59

#6 hanyegudeng

问题解决了。
方法如下:
执行完成存储过程后关闭数据库连接,在执行下面的数据库操作的时候重新创建连接。
这个方法不好,如果存储过程多应该会有问题。
谁有好的方法贴出来,大家共享下

2012-02-05 17:35:05