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

来源:互联网 发布:淘宝卖家怎么设置会员 编辑:程序博客网 时间:2024/04/29 07:01

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></tr>';
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,不知道是开发人员手误还是咋的.
原创粉丝点击