首頁 >後端開發 >php教程 >PDO中的預存程序的詳細介紹

PDO中的預存程序的詳細介紹

黄舟
黄舟原創
2017-04-28 17:47:493111瀏覽

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...語句區塊傳回錯誤訊息。關鍵程式碼如下:

<form name="form1" action="4.php" method="post">
    用户昵称:<input type="text" name="nc"><br>
    密   码:<input type="password" name="password"><br>
    邮   箱:<input type="text" name="email"><br>
    <input type="submit" name="Submit" value="注册">
    <input type="submit" name="Submit" value="重写">
</form>
<?php
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[&#39;nc&#39;];
    $password = md5($_POST[&#39;password&#39;]);
    $email = $_POST[&#39;email&#39;];
    $query = "call pro_reg(&#39;$nc&#39;,&#39;$password&#39;,&#39;$email&#39;)";
    $res = $pdo->prepare($query);//准备查询语句
    if ($res->execute()) {
        echo "添加数据库成功";
    } else {
        echo "添加数据库失败";
    }
}catch (PDOException $e){
    echo "PDO Exception Caught";
    echo &#39;Error with the database:<br>&#39;;
    echo &#39;SQL Query;&#39;.$query;
    echo &#39;<pre class="brush:php;toolbar:false">&#39;;
    echo "Error:".$e -> getMessage()."<br>";
    echo "Code:".$e ->getCode()."<br>";
    echo "File:".$e ->getFile()."<br>";
    echo "Line:".$e ->getLine()."<br>";
    echo "Trace:".$e ->getTraceAsString()."<br>";
    echo  "
"; } }

結果如下:

PDO中的預存程序的詳細介紹

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

總結:

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

以上是PDO中的預存程序的詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn