PHP调用Oracle,mysql,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;
}
?>
调用mysql
存储过程改成:
create procedure in_out(in uid int) begin
set @msg='hello';
select *,@msg from manage_loginhistory where h_uid=uid;
end;
php调用改成:
$sql = "call in_out(39)";
$rs=mysql_query($sql);
$row=mysql_fetch_array($rs);
调用ms sql server
$user_name = '龙之泪'; //声明一个变量,用做存储过程的输入参数
$password = '123456'; //再声明一个变量,用做存储过程的另一个输入参数
$info = ''; //$info,用来接受从存储过程输出的参数值
$host="192.168.0.1"; //定义数据库服务器
$user="sa"; //连接用户名
$password="123456"; //连接密码
$db="sample"; //数据库名称
$dblink=mssql_connect($host,$user,$password) or die("can't connect to mssql"); //连接数据库服务器
mssql_select_db($db,$dblink) or die("can't select sample");//选择数据库$sp = mssql_init("test"); //初始化一个存储过程
//为存储过程添加一个参数,@user_name为参数名,$user_name为参数对应的php变量,sqlvarchar表明该参数类型为sql server的varchar类型,第一个false表示该参数不是输出参数,即该参数是输入参数,第二个false表示该参数不允许为null,最后的30表示该变量的长度为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); //为存储过程添加一个输出参数
mssql_execute($sp); //执行该存储过程echo $info; //打印出从存储过程中返回的输出参数值