2012-08-29 27 views
2

如何在PHP中從一個結果集移動到另一個結果集。從一個結果集移動到另一個php

我已創建通過mysqli的方法即mysqli的一個DB連接( '根', '本地主機', '根', '', '測試',3306)

我有一個表喜歡一個下面

 
    CREATE TABLE Areas(AreaName VARCHAR(255), 
         PinCode VARCHAR(255)) 

    INSERT INTO Areas(AreaName, PinCode) 
      VALUES('Teynampet', '6000018'), 
       ('Ramapuram', '6000089'), 
       ('TNagar', '6000017'), 
       ('Mylapore', '6000014'), 
       ('Gopalapuram', '6000087') 

我有一個過程就像一個下面

 

    DROP PROCEDURE IF EXISTS mp_test1; 
    CREATE PROCEDURE mp_test1() 
    BEGIN 
     SELECT AreaName FROM Areas; 
     SELECT PinCode FROM Areas; 
    END 

現在,如果你看到它程序[R eturns兩個結果集。請注意結果集不記錄集。如何在PHP中從一個結果集移動到另一個結果集。

不要推薦我內連接查詢我的要求是不完全一樣的,我貼above.My問題是從一個結果移動到另一個在PHP

+0

我不知道這是否只是一個測試,但我沒有看到一個原因是什麼程序,你爲什麼不做兩個分離的查詢? – Gerep

+0

這不是我的實際需求,我寫過程有查詢,通過將10個表連接在一起帶來結果。如果我在這裏放置同樣的東西,我不會處於一種狀態來解釋進入內部的邏輯,任何人都不會處於閱讀和理解狀態 – user1093513

+0

當您調用此過程時會返回什麼? – Gerep

回答

1

當使用PDO這將是PDOStatement::nextRowset方法


當使用mysqli的功能/方法以使用是mysqli::next_result


mysqli的例子:

<?php 
$mysqli = new mysqli('localhost', 'localonly', 'localonly', 'test'); 
if ($mysqli->connect_error) { 
    die('Connect Error (' . $mysqli->connect_errno . ') ' . $mysqli->connect_error); 
} 


if (!$mysqli->multi_query('CALL mp_test1')) { 
    echo 'error'; 
} 
else { 
    do { 
     echo "--- result set ---\r\n"; 
     if ($result = $mysqli->store_result()) { 
      while ($row = $result->fetch_row()) { 
       echo join(', ', $row), "\n"; 
      } 
      $result->free(); 
     } 
    } while ($mysqli->more_results() && $mysqli->next_result()); 
} 

打印(從問題中所說的數據)

--- result set --- 
Teynampet 
Ramapuram 
TNagar 
Mylapore 
Gopalapuram 
--- result set --- 
6000018 
6000089 
6000017 
6000014 
6000087 
--- result set --- 
+0

非常感謝我不使用PDO – user1093513

+0

然後你可能想添加到你的問題文本,你用來連接到mysql服務器。 – VolkerK

+0

對不起,我不使用任何API我只使用mysqli方法創建連接 – user1093513

相關問題