解决方案 »
- 求一个排序算法
- cookie保存登录信息 登录成功后setcookie是有值 关闭浏览器在进首页就读取不到值 求解
- PHP用curl采集某个url出现400错误求解
- 求用smarty中的foreach 或者 loop循环 遍历display过来的数组
- 求教一简单正则?回帖给分!
- 急求页面信息采集 在线等答
- 高手进来一下,谢谢
- 求救!请各位高手帮忙看看这个PHP问题!急,急,急
- 请教各位高手Smarty里的模板文件(.TPL)的语法是什么样的?????????????????????
- 招兵买马启示
- memcached 和 web server跑在同一台server,如何配置防火墙
- 大大请进,环境搭配问题
你的 sql 指令是 call audioconver.p_advert_qry('-1',0,1) 吗?
正确吗?结果返回给谁了?
这是“命令不同步”的原因,如果遇到该错误,说明正在以错误顺序调用客户端函数你执行的是 call 命令,没有 select
所以会产生两个结果集
第一个是 select 的结果集,由于没有 select 命令,所以是无效的不能 php 处理成资源
第二个才是 call 的结果集虽然 mysql 提供了 C 函数 mysql_next_result 用于移动结果集
但 php 的 mysql 扩展并没有提供该函数,所以可认为php 的 mysql 不能很好的支持存储过程(因为 mysql4 并不支持存储过程)
mysqli 扩展提供了 mysqli_next_result 函数,所以如果使用了存储过程,最好是用 mysqli 驱动附上解决该问题的 C 代码 do
{
result=mysql_store_result(&conn);
mysql_free_result(result);
}while(!mysql_next_result(&conn)); // to solve the "2014:Commands out of sync; " problem
凡是在执行多查询时,每个查询后都需调用以上这段代码才行。
应该是 mysql 扩展会自动选择非空结果集,但 mysql_free_result 函数只能清空第一个结果集。这样 call 的结果集得不到清空,所以出错了
$adSearchRs = $config[DAOIMPL]->getADSearchInfo($search,$offset,$page);
$adSearchList = rs2Array($adSearchRs);
mysql_close();所以你可能需要修改数据库类
$adRs = $config[DAOIMPL]->adSearchCount($search);
//$adList = rs2Array($adRs);
$adList=mysql_fetch_array($adRs);
//mysql_free_result($adRs);
mysql_close();
关闭连接,重新连接数据庫还是不能解决这个问题,最有没有办法就好将页面中两个存储过程中的一个改成sql,才间接解决这个问题。