php调用存储过程后出错Commands out of sync; you can't run this command now

xiaoshitongzhisx 2014-10-15 10:50:05
请教一下大神们,php调用一次数据库的存储过程后,再进行数据库操作的话就会报错Commands out of sync; you can't run this command now,我在调用完存储过程后加上了mysql_free_result();了啊,这是为什么????
...全文
1722 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuzuning 2014-10-15
  • 打赏
  • 举报
回复
如果是 mysqli 或 pdo 可以读空结果集 但你是 mysql 所以只能重新连接数据库
xiaoshitongzhisx 2014-10-15
  • 打赏
  • 举报
回复
我试过执行closedb(),还是会报错
xuzuning 2014-10-15
  • 打赏
  • 举报
回复
你只定义了 closedb 函数,并没执行
xiaoshitongzhisx 2014-10-15
  • 打赏
  • 举报
回复
	error_reporting(0);
	require_once("db.php");//此文件位于下面
	//显示表二计算结果
	$query="call score2('PartTwo".$_REQUEST[num]."',@A,@B,@c,@D,@E,@F,@G,@score);";
	$result=executeQuery($query);
	if(!$result) die(mysql_error()); 
	while($r=mysql_fetch_row($result)){
		echo '<font style="color:#0000FF">睡眠质量(A):</font>'.$r[0].'     <font style="color:#0000FF">入睡时间(B):</font>'.$r[1].'     <font style="color:#0000FF">睡眠时间(C):</font>'.$r[2].'     <font style="color:#0000FF">睡眠效率(D):</font>'.$r[3].'     <font style="color:#0000FF">睡眠障碍(E):</font>'.$r[4].'     <font style="color:#0000FF">催眠药物(F):</font>'.$r[5].'     <font style="color:#0000FF">日间功能障碍(G):</font>'.$r[6].'     <font style="color:#0000FF">PSQI总分:</font>'.$r[7].'<br/><br/>';
	}
	mysql_free_result($result);
	//显示表三计算结果
	$query="call score('PartTwo".$_REQUEST[num]."',3,@score);";
	$result=executeQuery($query);
	if(!$result) die(mysql_error()); 
	while($r=mysql_fetch_row($result)){
		echo '<font style="color:#0000FF">SCORE:</font>'.$r[0].'   ';
		if(($r[0]>6)&&($r[0]<12))
		{
			echo '瞌睡';
		}elseif(($r[0]>11)&&($r[0]<17)){
			echo '过度瞌睡';
		}elseif($r[0]>16){
			echo '有危险性的瞌睡';
		}
	}
	mysql_free_result($result);
	//以下为db.php
	$dbserver="localhost";
	$dbusername="question";
	$dbpassword="questionadmin";
	$dbname="questionnaire";
	$conn=false;
	function executeQuery($query)
	{
		global $conn,$dbserver,$dbname,$dbpassword,$dbusername;
		global $message;
		if (!($conn = @mysql_connect ($dbserver,$dbusername,$dbpassword)))
			 $message="Cannot connect to server";
		if (!@mysql_select_db ($dbname, $conn))
			 $message="Cannot select database";
		$result=mysql_query($query,$conn);
		if(!$result)
			$message="Error while executing query.<br/>Mysql Error: ".mysql_error();
		else
			return $result;
	}
	function closedb()
	{
		global $conn;
		if(!$conn)
		mysql_close($conn);
	}
xuzuning 2014-10-15
  • 打赏
  • 举报
回复
要看到你的代码
xiaoshitongzhisx 2014-10-15
  • 打赏
  • 举报
回复
引用
如果是 mysqli 或 pdo 可以读空结果集 但你是 mysql 所以只能重新连接数据库
调用完存储过程,我是重新连接数据,然后才操作数据的啊,就报了这样的错误

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧