Heim > Backend-Entwicklung > PHP-Tutorial > Detaillierte Einführung in gespeicherte Prozeduren in PDO

Detaillierte Einführung in gespeicherte Prozeduren in PDO

黄舟
Freigeben: 2023-03-07 17:40:01
Original
3121 Leute haben es durchsucht

Detaillierte Einführung in gespeicherte Prozeduren in PDO

Gespeicherte Prozeduren in PDO ermöglichen die Manipulation von Daten näher an den Daten, wodurch die Bandbreitennutzung reduziert wird. Sie erzeugen Daten Unabhängig von der Skriptlogik können mehrere Systeme, die unterschiedliche Sprachen verwenden, auf die gleiche Weise auf Daten zugreifen, was wertvolle Zeit beim Codieren und Debuggen spart und gleichzeitig vordefinierte Szenarien verwendet, um Vorgänge auszuführen und die Abfragegeschwindigkeit zu erhöhen. Und es kann die direkte Interaktion mit verhindern Daten und schützt so die Daten!

Im vorherigen Artikel „Detaillierte Einführung in die Transaktionsverarbeitung in PDO“ haben wir die Transaktionsverarbeitung von PDO vorgestellt, daher stellen wir Ihnen in diesem Artikel die gespeicherten Prozeduren in PDO vor!

Erklären wir zunächst, wie man eine gespeicherte Prozedur in PDO aufruft. Hier erstellen wir zunächst eine gespeicherte Prozedur mit der folgenden SQL-Anweisung:

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;
//
Nach dem Login kopieren

Die „drop“-Anweisung löscht den vorhandenen Speicher im MySQL-Server.

Die Funktion von „delimiter//“ besteht darin, das Ende der Anweisung in „//“ zu ändern.

"in nc varchar(80)....in Adresse varchar(50)" gibt die Parameter an, die an die gespeicherte Prozedur übergeben werden sollen.

„begin...end“ stellt einen Anweisungsblock in einer gespeicherten Prozedur dar und seine Funktion ähnelt „{.....}“ in der PHP-Sprache.

Nachdem die gespeicherte Prozedur erfolgreich erstellt wurde, wird die gespeicherte Prozedur unten aufgerufen, um Benutzerregistrierungsinformationen hinzuzufügen. Die spezifischen Schritte sind wie folgt.

Erstellen Sie die Datei index.php. Erstellen Sie zunächst ein Formular und übermitteln Sie Benutzerinformationen über die POST-Methode an diese Seite. Schreiben Sie dann ein PHP-Skript auf dieser Seite, stellen Sie über PDO eine Verbindung zur MySQL-Datenbank her und legen Sie das Datenbankkodierungsformat auf UTF-8 fest, um die im Formular übermittelten Benutzerregistrierungsinformationen zu erhalten. Rufen Sie dann die gespeicherte Prozedur pro_reg über die Aufrufanweisung auf, um die Benutzerregistrierungsinformationen zur Datentabelle hinzuzufügen. Schließlich werden Fehlerinformationen über den Anweisungsblock try...catch... zurückgegeben. Der Schlüsselcode lautet wie folgt:

<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  "
Nach dem Login kopieren
"; } }

Das Ergebnis ist wie folgt:

Detaillierte Einführung in gespeicherte Prozeduren in PDO

Die Hauptsache ist, eine gespeicherte Prozedur zu erstellen und dann aufzurufen Diese gespeicherte Prozedur kann es selbst vor Ort ausprobieren~! ~

Zusammenfassung:

Die PDO-Datenbankabstraktionsschicht ist hier vollständig. Wir haben uns auf die Datenbankabstraktionsschicht-PDO konzentriert, beginnend mit der Übersicht, den Eigenschaften und der Installation mit einer Einführung in PDO-Beispielanwendungen, einschließlich: wie man eine Verbindung zu verschiedenen Datenbanken herstellt, wie man SQL-Anweisungen ausführt, wie man Ergebnismengen erhält und eine Fehlerbehandlung durchführt, und dann in fortgeschrittene Anwendungen von PDO: Transaktionen und gespeicherte Prozeduren, und jeder Teil ist Ich glaube, dass Freunde durch das Studium dieses Kapitels die Anwendung der PDO-Technologie beherrschen können. Dann sehen wir uns in unserem nächsten Thema!

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in gespeicherte Prozeduren in PDO. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage