下面總結了三種流行的數據庫教程如何利用php教程 來調用它們的存儲過程,我們講有mysql教程,oracle,mssql server哦。
<?php
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; //打印出從存儲過程中返回的輸出參數值