簡體   English   中英

MySQL存儲過程和PHPMyAdmin

[英]MySQL Stored Procedures and PHPMyAdmin

我創建了一個過程(使用PHPMyAdmin工具),該過程返回一個表和兩個輸出。 如果我使用PHPMyAdmin的“執行”按鈕執行該過程,它將發送以下查詢:

SET @p0 =  '12';
SET @p1 =  '1';
CALL `getPhoneReview` (@p0 , @p1 , @p2 , @p3);
SELECT @p2 AS  `PhoneCount` , @p3 AS  `ReviewCount`;

它返回期望的值(該表和兩個輸出)。 但是,如果我復制該確切的代碼並從SQL部分執行,則它僅執行最后一句話:

CALL `getPhoneReview` (@p0 , @p1 , @p2 , @p3)

哪個都不返回任何東西。

嘗試使用PHP檢索輸出值時也正在發生這種情況。 我有以下代碼:

$C = new MySQLi(...);
$Q = $C->query("CALL getPhoneReview(12, 1, @PhoneCount, @ReviewCount)");
/* Looping over $Q works fine */
$PhoneCount = $C->query("SELECT @PhoneCount AS PhC");
$PCO = $PhoneCount->fetch_object();
var_dump($PCO->PhC); /*  Call to a member function fetch_object() on boolean */

有人可以幫我嗎?

您的代碼有兩個問題。

  • 首先,在您的代碼中沒有針對mysqli的錯誤報告,並且您只有PHP發出的通知,而沒有來自mysql的實際錯誤。 您可以在此處閱讀如何正確制作。
  • 其次,在調用存儲過程之后,應該始終調用$C->next_result() 為了讓其他查詢得以執行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM