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
我一直在搜索google干,我已经尝试过了:
创建一个函数并从函数返回一个值(一些教程..没有工作的x xD)
声明输出值(OUT p_result INT)并设置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($ result)= bool(false)
答案 0 :(得分:0)
存储的PROCEDURES可以返回结果集。您在存储过程中选择的最后一项内容可用作调用环境的结果集。存储的FUNCTIONS只能返回单个结果原语。