iT邦幫忙

0

[PHP] 如何獲取 stored procedure (MySQL) 的 INOUT parameter 的值 ?

  • 分享至 

  • xImage

假設有一 MySQL stored procedure, 其輸出入是這樣

getValue(IN a varchar(10),INOUT b varchar(20))
BEGIN
SELECT a AS show_col;
SET b = CONCAT(a,"KK");
END;

在 php 會首先用 prepare 方法 去獲取這個 stored procedure 的 select result
($conn4 - 我是用 mysqli 方法, @c - 雖然是 INOUT, 但這用作輸出, 因此不載入任何值)
$d = "abc";
$prep = $conn4->prepare("CALL getValue(?,@c)");
$prep->bind_param("s",$d);
$prep->execute();
$result = $prep->get_result();
if ($result->num_rows > 0)
{
while ($data = $result->fetch_assoc())
echo $data["show_col"];
}

請問各位大大怎樣用 php 獲取 @c 的輸出值 ?

我曾 google 使用以下這個問題的 answer 方法但失敗
https://stackoverflow.com/questions/17014531/php-calling-mysql-stored-procedure-with-both-input-and-output-parameters-not
首先執行 call procedure 後 select OUT 那些 @變數值, 再用 php query 方法 執行 select 那一個 query 獲取那些 @變數值, 不過我用這個方法後, 那些 @變數值 在 execute stored procedure 後所有@變數值 都變成 empty ....

請問各位大大這個方法有什麼問題,如不是這樣做,那該怎麼辦?
謝謝

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答