[英]How to retrieve out parameter from mysqli stored procedure in php?
I want to access OUT parameter, from my mysqli database using stored procedures, and save it in php variable for printing message on web page. 我想使用存储过程从mysqli数据库访问OUT参数,并将其保存在php变量中,以便在网页上打印消息。
My Stored Procedure Is: 我的存储过程是:
DELIMITER $$
CREATE procedure insertUser (IN _name varchar(50), IN _username varchar(50), IN _password varchar(50), IN _email varchar(50), IN _cellNumber int(11), IN _estateName varchar(50), OUT _rply varchar(50))
BEGIN
DECLARE count1 int;
DECLARE count2 int;
DECLARE varEstateId int;
DECLARE _result varchar(50);
select COUNT(*) into count1 from users where username = _username;
select COUNT(*) into count2 from users where email = _email;
if (count1+count2 < 1)
THEN
insert into users (username , passkey , email) VALUES (_username ,_password,_email);
insert into estatedetails (estateName, estateOwnerUsername)
values (_estateName, _username);
SELECT estateId into varEstateId from estatedetails where estateOwnerUsername = _username;
insert into usersdetail (username, name, cell1, estateId, accountType)
VALUES (_username, _name, _cellNumber, varEstateId, 'owner');
set _result = 'inserted';
else
set _result = 'alreadyExist';
end IF;
set _rply = _result;
END$$
DELIMITER;
My php side code for calling stored procedure is: (Incomplete Code) 我的用于调用存储过程的php端代码是:(不完整的代码)
$db = new mysqli('localhost', 'root', '', 'estatelink');
$stmt=$db->prepare("CALL insertUser(?,?,?,?,?,?,?)");
$stmt->bind_param('ssssiss',$name, $username, $password, $email, $num, $estate_name, $rply);
$stmt->execute();
$result= $rply;
Note: My query is executing perfectly inserting data with success. 注意:我的查询执行成功,插入数据完美。 My only issue is that how can I access OUT parameter in this case it is $rply.
我唯一的问题是在这种情况下如何访问OUT参数是$ rply。
Thanks in Advance. 提前致谢。
You do not use your output parameter. 您不使用输出参数。 You can set its value, like this:
您可以设置其值,如下所示:
set @_rply = 'foobar';
You can use it, like this: 您可以使用它,如下所示:
$db->multi_query( "CALL insertUser($name,$username,$password,$email,$cellNumber,$estateName,@_rply);SELECT @_rply as _rply" );
$db->next_result(); // flush the null RS from the call
$rs=$db->store_result(); // get the RS containing the id
echo $rs->fetch_object()->_rply, "\n";
$rs->free();
您可以在过程中使用SELECT语句,并像典型查询一样获取结果
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.