您的位置:首页 > 编程语言 > PHP开发

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

2011-09-05 20:14 886 查看

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,不知道是开发人员手误还是咋的.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: