喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 帮助

RSS 订阅当前论坛  

喜悦证交所已经关闭

上一主题 下一主题
     
标题: [问题] 头大了!问题一个接一个!谁来帮帮我!  
 
woriyo
新手上路
Rank: 1


UID 96255
精华 0
积分 33
帖子 21
金钱 33 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-7-30
状态 离线
[广告]: q m
头大了!问题一个接一个!谁来帮帮我!

我再mysql中建立了2个存储过程,但是在php中调用时出现错误:

ErrorPROCEDURE trafficdata.GetStaName can't return a result set in the given context
后来在网上找了半天,需要修改数据库连接文件
改动如下:
原:

$conn = mysql_pconnect($hostname_conn, $username_conn, $password_conn) or trigger_error(mysql_error(),E_USER_ERROR);

改:
define('CLIENT_MULTI_RESULTS', 131072);
$conn = mysql_connect($hostname_conn, $username_conn, $password_conn,1,CLIENT_MULTI_RESULTS) or trigger_error(mysql_error(),E_USER_ERROR);

问题解决,

新问题又来了,在程序中只能调用一次存储过程,否则出现错误:

ErrorCommands out of sync; you can't run this command now




菜!  
2008-4-8 07:15 PM#1
查看资料  发短消息  顶部
 
woriyo
新手上路
Rank: 1


UID 96255
精华 0
积分 33
帖子 21
金钱 33 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-7-30
状态 离线
[推荐阅读] 求助,如何测试session是否正常?
解决了!小有成就感............................



菜!  
2008-4-8 08:28 PM#2
查看资料  发短消息  顶部
 
my.com.net
中级会员
Rank: 3Rank: 3


UID 90379
精华 0
积分 358
帖子 282
金钱 358 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2007-3-29
状态 离线
[推荐阅读] 如何进行权限控制
说来听听吧~



一又二分之一许愿吧
2008-4-9 08:38 AM#3
查看资料  访问主页  发短消息  QQ  顶部
 
woriyo
新手上路
Rank: 1


UID 96255
精华 0
积分 33
帖子 21
金钱 33 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-7-30
状态 离线
[推荐阅读] 不能搜索中文,请问该如何解决?
CR_COMMANDS_OUT_OF_SYNC

以不恰当的顺序执行了命令-mysql 手册中有

出现错误的原因,据我理解是因为在第一次调用存储过程后没有释放为结果集分配的内存(Mysql ),而直接调用了第2个存储过程。

解决办法:使用mysqli,查询结束后调用mysqli_free_result释放结果集。

临时写了个类,供参考

class myQuery{
        var $dblink;
        function __construct(){
                $this->dblink = mysqli_connect("localhost", "test", "123", "dbs");
        }
       
        function __destruct() {
                mysqli_close($this->dblink);
        }

        function GetResult($querystr,$charset='gbk'){
                mysqli_query($this->dblink,"set character set $charset");
                $i=0;
                if (mysqli_multi_query($this->dblink, $querystr)) {
                        do {
                                if ($result = mysqli_use_result($this->dblink)) {
                                        while ($row [$i]= mysqli_fetch_row($result)) {
                                                 $i++;
                                        }
                                        mysqli_free_result($result);
                                }
                        } while (mysqli_next_result($this->dblink));
                }
                return $row;
        }       
}


调用:

$sql="call testPROCEDURE('a,1)";
$myQuery= new myQuery();
$row=$myQuery->GetResult($sql);

可以重复用




菜!  
2008-4-9 03:18 PM#4
查看资料  发短消息  顶部
 
startend
注册会员
Rank: 2



UID 105521
精华 0
积分 52
帖子 42
金钱 52 喜悦币
威望 0
人脉 0
阅读权限 20
注册 2008-1-2
状态 离线
[推荐阅读] 上海,SNS网站开发团队招募PHPer,月薪 6k 起,无上限
存储过程问题

//存储过程
create procedure testpc()
begin
select item_guid from storage;
end//
//PHP代码测试
$user="root";
$pwd="root";
@mysql_connect("localhost",$user,$pwd) or die("error");
@mysql_select_db("testorder");
$qry=@mysql_query("call testpc()");
while($rs=@mysql_fetch_array($qry)){
        print_r($rs);
       
}

我现在执行我自己建立的存储过程,为何不执行?没有任何反应!请教各位
2008-4-9 04:47 PM#5
查看资料  发短消息  顶部
 
woriyo
新手上路
Rank: 1


UID 96255
精华 0
积分 33
帖子 21
金钱 33 喜悦币
威望 0
人脉 0
阅读权限 10
注册 2007-7-30
状态 离线
[推荐阅读] 现在做php开发主管,啥待遇?
把@去了看看有什么错误提示



菜!  
2008-4-9 07:21 PM#6
查看资料  发短消息  顶部
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 




Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.023634 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP