2015-09-16 101 views
0

我是新來的php。我正在調用存儲在MYSQL中返回多個結果集的過程。php pdo返回只有一個結果集

我似乎無法得到PHP PDO獲得第二個結果集。我只拿到第一名。任何幫助appreaciated

- 更多信息

存儲過程只是讓來選擇,像這樣的語句

select * from Product where productId = id; 
select url from Images where product_id = id; 

PHP代碼:

$conn = new PDO('mysql:host=localhost;dbname=salamancju_HardGraft', $this->userName, $this->password); 

     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     $conn->setAttribute(PDO::ATTR_EMULATE_PREPARES, true); 

     $stmt = $conn -> prepare('call GetProductById(:id)'); 
     $stmt->execute(array(':id' => $id)); 

     $results = array(); 

     do { 
      $results = $results + $stmt->fetchAll(PDO::FETCH_NUM); 

     } while ($stmt->nextRowset()); 

     echo json_encode($results); 
+0

顯示存儲過程,描述數組,顯示更多詳細信息 – Drew

+0

@Drew不確定你的意思是描述數組嗎?該數組由$ stmt-> fetchAll(PDO :: FETCH_NUM)分配;從表格中得到的結果都是varchar .. –

+0

我試圖讓你的問題保持活躍,看到它有4個密切的選票,並且hachet正在下降。不像我想了很多。但他們關閉了它。如果你在問題頂部做一個[編輯],並給出更多的細節,這聽起來像*可能*是一個有趣的問題,也許重新開放 – Drew

回答

0

您的問題無關,與存儲程序。 +數組運算符不符合您的想法。用[]代替:

do { 
     $results[] = $stmt->fetchAll(PDO::FETCH_NUM); 

    } while ($stmt->nextRowset()); 

會產生一個嵌套數組。如果你想要另一種格式,請提供一個例子。

除了這個問題,你的代碼是完美的。大多數不是PHP新手的人都無法實現它。