2015-04-28 59 views
0

我正在做一個學校項目,我不得不建立一個銀行,並做轉移等 所以我做了兩個存儲過程,提取和存款,都需要帳戶數量和金額作爲參數。從MySql中的存儲過程返回的東西成功

CREATE DEFINER=`bank`@`localhost` PROCEDURE `withdraw`(
    IN p_account INT(11), 
    IN p_amount DOUBLE 
) 
BEGIN 

DECLARE p_balance double; 
SELECT balance 
INTO p_balance FROM 
Accounts 
WHERE 
account_id = p_account; 

IF p_balance >= p_amount THEN 
UPDATE Accounts 
SET balance = p_balance - p_amount 
WHERE account_id = p_account; 
//tell my php somehow 
ELSE 
//tell my php somehow 
END IF; 

END 

我一直在尋找谷歌乾的,我已經試過:

做一個函數,從函數(一些教程..沒有工作OFC XD)

返回一個值聲明一個輸出值(OUT p_result INT)並設置整數,沒有運氣

我試過了,爲了得到那個輸出值的工作和即時通訊。

我想是在我的PHP腳本

$sql = "CALL withdraw(1,500);" 
$result = conn->query($sql); 
if($result=true){ 
    conn->query("CALL deposit(2,500)"); 
} else { 
    //inform user 
} 

編輯!:我現在選擇在我的程序的東西,存款()返回的是一個電子郵件地址。

退出()退貨是已退出的賬戶。 兩個正常工作1由1 但是當我做退出(),然後再存入()如果成功退出,那麼我的var_dump($結果)=布爾(假)

+0

你必須有'OUT'和'IN'的 –

+0

是的,這9個字沒有真正幫助很多。謝謝。 –

+0

[MySQL存儲過程的返回值]的可能重複(http://stackoverflow.com/questions/4362722/return-value-from-mysql-stored-procedure) –

回答

0

存儲過程可以返回一個結果。您在存儲過程中選擇的最後一件東西可用作調用環境的結果集。存儲函數只能返回單個結果基元。