站长论坛

标题: 经过高手优化的MySQL数据库实例 [打印本页]

作者: jsper    时间: 2008-9-14 15:48
标题: 经过高手优化的MySQL数据库实例
总有网友问我,如何通过php调用MySQL的存储过程同时取得返回的结果集呢?确实,MySQL的存储过程大大方便了编程也提高了效率。但是,对于那些还在用php 4 的同学们来说可就麻烦了,因为php 4只能调用存储过程,但却无法直接取得返回结果集;不过,用php 5的mysqli函数就可以做到了。首先,重新编译php 5,增加对mysqli的支持,或者直接下载mysqli的扩展模块,这里不再细说。直接举个例子吧:

  1、 创建存储过程,列出 test 库下的所有表:

  mysql>DELIMITER //

  mysql>CREATE PROCEDURE `yejr`()

  ->BEGIN

  ->SHOW TABLES;

  ->END; //

  Query OK, 0 rows affected (0.12 sec)

  mysql>DELIMITER ;

  mysql>CALL yejr();

  +------------------+

  | Tables_in_test |

  +------------------+

  | yejr1 |

  | yejr2 |

  +------------------+



  2、 用 mysqli 编写测试代码:

  $mysqli = new mysqli("localhost", "root", "", "test");

  if (mysqli_connect_errno()) {

  printf("Connect failed: %s\n", mysqli_connect_error());

  exit();

  }

  $query = "call yejr();";

  if ($result = $mysqli->query( $query)) {

  while($row = $result->fetch_row()){

  printf ("find table: %s \n", $row[0]);

  }

  }

  $result->close();

  ?>



  结果大致如下:

  find table: yejr1

  find table: yejr2




欢迎光临 站长论坛 (http://tzlink.com/bbs/) Powered by Discuz! X3.2