2013-10-29 48 views
0

我有一個PHP代碼用於訪問我的控制面板上的用戶擁有的所有服務器,如果他們有多個服務器,這顯然需要多行返回,但我目前似乎無法返回多行。獲取錯誤'調用未定義的方法PDOStatement :: store_result()'

到目前爲止,我有這個作爲我的代碼;從MySQL服務器運行時

$nquery = "CALL `controlpanel`.`sp_getUsersServers`($userid);"; 
    $servers=array(); 
    try{ 
     $serverrows = $db->prepare($nquery); 
     $serverrows->execute(); 
     $serverrows->store_result(); 
     while ($row = mysqli_fetch_assoc($serverrows)) { 
      print_r($row); 
     } 
    } 

存儲過程正確地返回,我設法讓這種方式返回的第一行,但顯然我需要比第一行多。爲什麼我會得到這樣的錯誤?

編輯: 在windows server 2012虛擬機上使用IIS,並安裝了PHP。

+0

回顯您的$ nquery並將其粘貼到您的MySQL服務器。 也許有什麼錯? – demonking

+0

我試過了,它是正確的,它回聲「CALL'controlpanel'.'sp_getUsersServers'(1);」 –

回答

1

沒有這樣的方法PDOStatement :: store_result。我應該嘗試使用mysqli驅動程序連接到數據庫。

$db = new mysqli("example.com", "user", "password", "database"); 
+1

你是什麼意思?我正在關注網絡資源,告訴我使用$ db = new PDO(「mysql:host = {$ host}; dbname = {$ dbname}; charset = utf8」,$ username,$ password, $ options);'$ db = new mysqli(「example.com」,「user」,「password」,「database」);''影響我在做什麼?我將不得不更改我的代碼嗎? –

+1

如果您創建PDO連接,您將在代碼中使用PDOStatement。這些語句沒有store_result方法。我建議,你應該使用mysqli驅動程序/擴展(你應該使用自己的連接數據,而不是上面的構造函數參數,即$ db = new mysqli($ host,$ username,$ password,$ dbname);) – ziollek

+0

Riiight我看,所以PDO不具有store_result,而mysqli()具有,但它們仍然訪問相似的方法? –

相關問題