我试图创建一个SQL过程,其中从成员表返回指定值。
DELIMITER $$
DROP PROCEDURE IF EXISTS `qrgdev`.`ConfirmMember` $$
CREATE PROCEDURE `qrgdev`.`ConfirmMember` (
check_Username varchar(45),
check_Password varchar(255))
BEGIN
DECLARE intcheckId INTEGER(1);
DECLARE intAccessLevel INTEGER(1) DEFAULT 0;
SELECT id INTO intCheckId FROM members WHERE Username=Check_Username;
IF (intCheckId=0)
SELECT AccessLevel INTO intAccessLevel FROM members WHERE passwrd=check_Password;
ELSE
IF (intCheckId>0) THEN
Update members
Set LastSignIn=CURRENT_TIMESTAMP
Where ID=intCheckId;
SELECT AccessLevel INTO intAccessLevel FROM members WHERE id=intCheckId;
ELSE
Insert into members
(ID, Username, Administrator, Passwrd, LastSignIn)
values
(null, check_Username, 0, null, CURRENT_TIMESTAMP);
END IF;
END IF;
RETURN(intAccessLevel);
END $$
DELIMITER ;
让PHP根据
值设置条件//...
$result = $mysqli->query("Call ConfirmMember($username,$password)");
//...
这开始作为一个函数之前,我知道PHP不能调用SQL函数,这就是为什么它仍然返回在底部,也得到点我想要返回的值
创建一个SQL过程,返回一个指定的值
这就是你最大的问题。过程不返回值。函数返回值。在过程和函数中,你都可以把变量的引用作为参数传递——过程/函数可以改变变量的值。
在我知道PHP不能调用SQL函数之前,它是一个函数
谁告诉你的?这完全是胡说八道。
$result = $mysqli->query("Call ConfirmMember($username,$password)");
我认为你已经转义并引用了这些变量。
将PROCEDURE改为FUNCTION,然后以....方式调用
SELECT ConfirmMember($username,$password)