假設有一 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 ....
請問各位大大這個方法有什麼問題,如不是這樣做,那該怎麼辦?
謝謝