php调用mysql存储过程返回结果集的处理

php调用mysql存储过程返回结果集的处理

最近开发一个项目,用到这个,记一下:

关键就是两点

1 define ( ' CLIENT_MULTI_RESULTS ' ,   131072 );
2 
3  $link   =   mysql_connect ( " 127.0.0.1 " ,   " root " ,   "" , 1 , CLIENT_MULTI_RESULTS) or  die ( " Could not connect:  " . mysql_error ());

下面就可以正常使用了,以下是例子程序。

 1  <? php
 2       define ( ' CLIENT_MULTI_RESULTS ' ,   131072 );
 3 
 4       $link   =   mysql_connect ( " 127.0.0.1 " ,   " root " ,   "" , 1 , CLIENT_MULTI_RESULTS) or  die ( " Could not connect:  " . mysql_error ());
 5       mysql_select_db ( " vs " ) or  die ( " Could not select database " );
 6  ?>
 7 
 8 <? php
 9           $result   =   mysql_query ( " call get_news_from_class_id(2) " ) or  die ( " Query failed: "   . mysql_error ());
10           while ( $row   =   mysql_fetch_array ( $result ,  MYSQL_ASSOC))
11          {
12                   $line   =   ' <tr><td><a target = _blank href=\ '' .$row["url"]. ' \ ' > ' . $row [ " title " ] . ' ( ' . $row [ " page_time " ] . ' ) ' . ' </a></td></t r> ' ;
14                   echo   $line ;
15                   printf ( " \n " );
16 
17          }
18           mysql_free_result ( $result );
19 ?>
20 
21  <? php
22       mysql_close ( $link );
23  ?>

另外说个事,因为最近用的是FleaPHP这个框架进行开发的.设置了DSN的options发现没有作用,debug了一下发现问题出在FLEA::parseDSN函数中,代码如下:

1      function  parseDSN( $dsn )
2      {
3           if  ( is_array ( $dsn )) {
4               $dsn [ ' host ' =   isset ( $dsn [ ' host ' ])  ?   $dsn [ ' host ' :   '' ;
5               $dsn [ ' port ' =   isset ( $dsn [ ' port ' ])  ?   $dsn [ ' port ' :   '' ;
6               $dsn [ ' login ' =   isset ( $dsn [ ' login ' ])  ?   $dsn [ ' login ' :   '' ;
7               $dsn [ ' password ' =   isset ( $dsn [ ' password ' ])  ?   $dsn [ ' password ' :   '' ;
8               $dsn [ ' database ' =   isset ( $dsn [ ' database ' ])  ?   $dsn [ ' database ' :   '' ;
9               $dsn [ ' options ' =   isset ( $dsn [ ' options ' ])  ?   serialize ( $dsn [ ' options ' ])  :   '' ;

这里多加了个serialize,不知道是开发人员手误还是咋的.
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值