作者 主題: stored procudure  (閱讀 3392 次)

0 會員 與 1 訪客 正在閱讀本文。

zelda

  • 憂鬱的高中生
  • ***
  • 文章數: 92
    • 檢視個人資料
stored procudure
« 於: 2016-12-30 14:03 »
各位大大
我已經寫好一個procedure
PROCEDURE 'checkIn'(in var_stCode char(10), in var_imei char(15), out result int)
在sql command line下測試都OK
像這樣呼叫
call checkin("0981167670", "098611767012345" , @a);
再下
select @ab;
可以收到預期數字

可是我用php pdo調用,始終無法成功
        $syntax = 'call checkin(0986117670, 098116767012345, ?)';
        $stmt = $cn->prepare($syntax);
        $stmt->bindParam(1, $result, PDO::PARAM_INT);
        $result = 0;
        $stmt->execute();
        var_dump($stmt->errorInfo());
errorInfo丟出的訊息:
"OUT or INOUT argument 3 for routine cardrive.checkin is not a variable or NEW pseudo-variable in BEFORE trigger"

拜了google大神後
得到的答案只有
把?換成@a
再用select @a取回

可是我看過php網站
http://php.net/manual/en/pdo.prepared-statements.php
也是這種寫法啊

有大大遇過這問題
是有其它地方要加上去?
才能使用官網上的寫法

總覺得應該可以做到
用select @a這種做法
還要多繞一圈