天天看點

php pdo 儲存過程,PDO中的存儲過程的詳細介紹

PDO中的存儲過程的詳細介紹

PDO中存儲過程允許在更接近于資料的位置操作資料,進而減少帶寬的使用,它們使資料獨立于腳本邏輯,允許使用不同語言的多個系統以相同的方式通路資料,進而節省了花費在編碼和調試上的寶貴時間,同時他使用預定義的方案執行操作,提高查詢速度,并且能阻止與資料的直接互相作用,進而起到保護資料的作用!

上一篇文章《PDO中的事務處理具體介紹》中,我們介紹了關于PDO的事務處理,那麼我們這篇文章給大家介紹PDO中的存儲過程!

首先來講解如何在PDO中調用存儲過程,這裡先建立一個存儲過程,其SQL語句如下:drop procedure if exists pro_reg;

delimiter//

create procedure pro_reg(in nc varchar(80),in pwd varchar(80), in email varchar(80),in address varchar(50))

begin

insert into tb_reg(name,pwd,email,address)values(nc,pwd,email,address);

end;

//

“drop”語句删除MySQL伺服器中已經存在的存儲過程pro_reg。

“delimiter//”的作用是将語句結束符更以為“//”。

“in nc varchar(80).......in address varchar(50)”表示要向存儲過程中傳入的參數。

“begin......end”表示存儲過程中的語句塊,它的作用類似與PHP語言中的“{.......}”。

存儲過程建立成功後,下面調用存儲過程,實作使用者注冊資訊的添加操作,具體步驟如下。

建立index.php檔案。首先,建立form表單,将使用者資訊通過POST方法送出到本頁。然後,在本頁中編寫PHP腳本,通過PDO連接配接MySQL資料庫,并且設定資料庫編碼格式為UTF-8,擷取表單中送出的使用者注冊資訊。接着,通過call語句調用存儲過程pro_reg,将使用者注冊資訊添加到資料表中。最後,通過try...catch...語句塊傳回錯誤資訊。關鍵代碼如下:

使用者昵稱:

密 碼:

郵 箱:

if($_POST["Submit"]){

header("Content-Type:text/html; charset=utf-8"); //設定頁面的編碼格式

$dbms = "mysql"; // 資料庫的類型

$dbName ="php_cn"; //使用的資料庫名稱

$user = "root"; //使用的資料庫使用者名

$pwd = "root"; //使用的資料庫密碼

$host = "localhost"; //使用的主機名稱

$dsn = "$dbms:host=$host;dbname=$dbName";

try {

$pdo = new PDO($dsn, $user, $pwd);//初始化一個PDO對象,就是建立了資料庫連接配接對象$pdo

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$nc = $_POST['nc'];

$password = md5($_POST['password']);

$email = $_POST['email'];

$query = "call pro_reg('$nc','$password','$email')";

$res = $pdo->prepare($query);//準備查詢語句

if ($res->execute()) {

echo "添加資料庫成功";

} else {

echo "添加資料庫失敗";

}

}catch (PDOException $e){

echo "PDO Exception Caught";

echo 'Error with the database:

';

echo 'SQL Query;'.$query;

echo '

';      

echo "Error:".$e -> getMessage()."

";

echo "Code:".$e ->getCode()."

";

echo "File:".$e ->getFile()."

";

echo "Line:".$e ->getLine()."

";

echo "Trace:".$e ->getTraceAsString()."

";

echo "

";

}

}

結果如下:

php pdo 儲存過程,PDO中的存儲過程的詳細介紹

主要是建立一個存儲的過程,然後在調用這個存儲過程,小夥伴們可以在本地自己試一試~!~

總結:

關于PDO資料庫抽象層到這裡就全部結束了,我們重點介紹了資料庫抽象層——PDO,從PDO概述,特點和安裝開始講解,到PDO的執行個體應用,其中包括:如何連接配接不同的資料庫,如何執行SQL語句,如何擷取結果集以及執行錯誤處理,再到PDO的進階應用:事務和存儲過程,并且每個部分都有相應的執行個體,通過本章的學習,相信小夥伴們能夠掌握PDO技術的應用。那麼我們下一個專題不見不散!