如何通過PHP取得MySQLprocedure結果

科技小先鋒發表於2017-11-16
總有網友問我,如何通過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 編寫測試程式碼:
<?php
$mysqli = new mysqli("localhost", "root", "", "test");
if (mysqli_connect_errno()) {
  printf("Connect failed: %s
", mysqli_connect_error());
  exit();
}
$query = "call yejr();";
if ($result = $mysqli->query( $query)) {
  while($row = $result->fetch_row())
  {
    printf ("find table: %s 
", $row[0]);
  }
}
$result->close();
?>
結果大致如下:

find table: yejr2

本文轉自葉金榮51CTO部落格,原文連結:http://blog.51cto.com/imysql/308288,如需轉載請自行聯絡原作者


相關文章