The following summarizes how three popular database tutorials use PHP tutorials to call their stored procedures. We will talk about mysql tutorials, oracle, and mssql server.
function check_login($user, $pass) {
$conn = ocilogon('user', 'pass', 'database');
$sql = 'begin :result := test.check_login(:user, :pass); end;';
$stmt = oci_parse($conn, $sql);
$result = '';
oci_bind_by_name($stmt, ':user', $user, 32);
oci_bind_by_name($stmt, ':pass', md5($pass), 32);
oci_bind_by_name($stmt, ':result', $result, 10);
oci_execute($stmt);
ocilogoff($conn);
return $result;
}
?>
Call mysql
The stored procedure is changed to:
create procedure in_out(in uid int) begin
set @msg='hello';
select *,@msg from manage_loginhistory where h_uid=uid;
end;
Change the php call to:
$sql = "call in_out(39)";
$rs=mysql_query($sql);
$row=mysql_fetch_array($rs);
Call ms sql server
$user_name = 'Dragon Tears'; //Declare a variable to be used as an input parameter for the stored procedure
$password = '123456'; //Declare a variable to be used as another input parameter of the stored procedure
$info = ''; $info, //$info, used to accept parameter values output from the stored procedure
$host="192.168.0.1"; //Define database server
$user="sa"; //Connect username
$password="123456"; //Connection password
$db="sample"; //Database name
$dblink=mssql_connect($host,$user,$password) or die("can't connect to mssql"); //Connect to the database server
mssql_select_db($db,$dblink) or die("can't select sample");//Select database$sp = mssql_init("test"); //Initialize a stored procedure
//Add a parameter to the stored procedure, @user_name is the parameter name, $user_name is the PHP variable corresponding to the parameter, sqlvarchar indicates that the parameter type is the varchar type of sql server, the first false indicates that the parameter is not an output parameter, That is, this parameter is an input parameter, the second false indicates that the parameter is not allowed to be null, and the last 30 indicates that the length of the variable is 30
mssql_bind($sp,"@user_name",$user_name,sqlvarchar,false,false,30);
mssql_bind($sp,"@password",$password,sqlvarchar,false,false,30);
mssql_bind($sp,"@info",$info,sqlvarchar,true,false,30); //Add an output parameter to the stored procedure
mssql_execute($sp); //Execute the stored procedureecho $info; //Print out the output parameter value returned from the stored procedure