Heim Datenbank MySQL-Tutorial So verwenden Sie gespeicherte Prozeduren in PHP+MySQL

So verwenden Sie gespeicherte Prozeduren in PHP+MySQL

Apr 17, 2023 pm 04:41 PM

MySQL und PHP sind zwei Technologien, die häufig bei der Website-Entwicklung verwendet werden. Unter anderem ist MySQL ein Datenbankverwaltungssystem, das für die Datenspeicherung und -verwaltung verantwortlich ist; PHP ist eine serverseitige Skriptsprache, die zum Generieren von Webseiteninhalten verwendet wird. In einigen komplexen Geschäftsszenarien müssen gespeicherte Prozeduren verwendet werden, um bestimmte Datenoperationen abzuschließen. In diesem Artikel wird die Verwendung gespeicherter Prozeduren von MySQL und PHP vorgestellt.

1. Gespeicherte MySQL-Prozedur

Die gespeicherte Prozedur von MySQL ist eine Sammlung vorkompilierter SQL-Anweisungen, die zum Ausführen einer bestimmten Geschäftslogik verwendet werden können. Im Vergleich zum Schreiben ähnlicher Geschäftslogik auf der Anwendungsebene kann die Verwendung gespeicherter Prozeduren diese Logik auf die Datenbankebene verschieben, wodurch Netzwerkübertragungszeit gespart und die Leistung verbessert wird. Das Folgende ist eine einfache gespeicherte MySQL-Prozedur:

CREATE PROCEDURE `my_proc`(IN `p_id` INT, OUT `p_name` VARCHAR(20))
BEGIN
    SELECT `name` INTO `p_name` FROM `users` WHERE `id` = `p_id`;
END
Nach dem Login kopieren

Diese gespeicherte Prozedur akzeptiert einen ganzzahligen Parameter p_id und weist den entsprechenden Benutzernamen den p_name code&gt;Ausgabeparametern zu . Wenn Sie diese gespeicherte Prozedur auf der Anwendungsebene aufrufen, müssen Sie nur den Parameter <code>p_id übergeben, um den Namen des entsprechenden Benutzers zu erhalten. Der Vorteil der Verwendung einer gespeicherten Prozedur besteht darin, dass die MySQL-Engine beim nächsten Aufruf der gespeicherten Prozedur die Prozedur bereits in Maschinencode kompiliert hat und die SQL-Anweisung nicht erneut analysiert werden muss, sodass die Ausführungseffizienz höher ist. p_id,并将对应用户的姓名赋值给p_name输出参数。在应用层调用该存储过程时,只需要传递参数p_id,即可获得对应用户的姓名。使用存储过程的好处在于,下次调用该存储过程时,MySQL引擎已经将该过程编译为机器码,无需再次解析SQL语句,因此执行效率更高。

二、PHP调用MySQL存储过程

在PHP开发中,使用存储过程可以大大减少数据库操作的时间。下面是调用上述MySQL存储过程的PHP代码:

&lt;?php
// 连接MySQL数据库
$db = new mysqli(&#39;localhost&#39;, &#39;user&#39;, &#39;password&#39;, &#39;test&#39;);
if ($db-&gt;connect_errno) {
    die('Connect Error:' . $db-&gt;connect_error);
}

// 准备存储过程的参数和调用语句
$id = 1;
$p_name = '';
$sql = "CALL my_proc($id, @p_name)";

// 执行调用语句
if ($db-&gt;multi_query($sql)) {
    // 获取输出参数
    $db-&gt;next_result();
    $result = $db-&gt;query("SELECT @p_name AS `name`");
    $row = $result-&gt;fetch_assoc();
    $p_name = $row['name'];

    // 输出查询结果
    echo "User $id's name is $p_name";
} else {
    echo "Call Procedure Error:" . $db-&gt;error;
}

// 关闭数据库连接
$db-&gt;close();
?&gt;
Nach dem Login kopieren

在这段PHP代码中,首先连接MySQL数据库,随后准备存储过程的输入参数和调用语句。由于调用存储过程产生的查询结果是通过OUT参数输出的,因此需要执行多个SQL语句才能获取查询结果:首先执行调用语句,随后执行SELECT语句,最后获取输出参数p_name

2. PHP ruft gespeicherte MySQL-Prozeduren auf

In der PHP-Entwicklung kann die Verwendung gespeicherter Prozeduren die Zeit für Datenbankoperationen erheblich verkürzen. Das Folgende ist der PHP-Code, der die obige gespeicherte MySQL-Prozedur aufruft:

rrreee

Stellen Sie in diesem PHP-Code zunächst eine Verbindung zur MySQL-Datenbank her und bereiten Sie dann die Eingabeparameter und Aufrufanweisungen der gespeicherten Prozedur vor. Da die durch Aufrufen der gespeicherten Prozedur generierten Abfrageergebnisse über den OUT-Parameter ausgegeben werden, müssen mehrere SQL-Anweisungen ausgeführt werden, um die Abfrageergebnisse zu erhalten: Führen Sie zuerst die aufrufende Anweisung aus, führen Sie dann die SELECT-Anweisung aus und rufen Sie schließlich den Ausgabeparameter p_name. Nachdem der Anruf abgeschlossen ist, schließen Sie einfach die Datenbankverbindung. #🎜🎜##🎜🎜#Zusammenfassung#🎜🎜##🎜🎜#In komplexer Geschäftslogik kann die Verwendung gespeicherter MySQL-Prozeduren einen Teil der Logik auf die Datenbankebene verschieben und so die Betriebseffizienz und Reaktionsgeschwindigkeit des Systems verbessern. Wenn PHP eine gespeicherte MySQL-Prozedur aufruft, müssen Sie auf die Eingabe- und Ausgabeparameter der gespeicherten Prozedur achten und mehrere SQL-Anweisungen ausführen, um Abfrageergebnisse zu erhalten. Auf diese Weise kann in der Praxis durch die Kombination gespeicherter MySQL-Prozeduren und PHP-Entwicklung Datenbankvorgänge bequemer abgewickelt und die Effizienz verbessert werden. #🎜🎜#

Das obige ist der detaillierte Inhalt vonSo verwenden Sie gespeicherte Prozeduren in PHP+MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Artikel -Tags

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Reduzieren Sie die Verwendung des MySQL -Speichers im Docker Reduzieren Sie die Verwendung des MySQL -Speichers im Docker Mar 04, 2025 pm 03:52 PM

Reduzieren Sie die Verwendung des MySQL -Speichers im Docker

Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung? Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung? Mar 19, 2025 pm 03:51 PM

Wie verändern Sie eine Tabelle in MySQL mit der Änderungstabelleanweisung?

So lösen Sie das Problem der MySQL können die gemeinsame Bibliothek nicht öffnen So lösen Sie das Problem der MySQL können die gemeinsame Bibliothek nicht öffnen Mar 04, 2025 pm 04:01 PM

So lösen Sie das Problem der MySQL können die gemeinsame Bibliothek nicht öffnen

Was ist SQLite? Umfassende Übersicht Was ist SQLite? Umfassende Übersicht Mar 04, 2025 pm 03:55 PM

Was ist SQLite? Umfassende Übersicht

Führen Sie MySQL in Linux aus (mit/ohne Podman -Container mit Phpmyadmin) Führen Sie MySQL in Linux aus (mit/ohne Podman -Container mit Phpmyadmin) Mar 04, 2025 pm 03:54 PM

Führen Sie MySQL in Linux aus (mit/ohne Podman -Container mit Phpmyadmin)

Ausführen mehrerer MySQL-Versionen auf macOS: Eine Schritt-für-Schritt-Anleitung Ausführen mehrerer MySQL-Versionen auf macOS: Eine Schritt-für-Schritt-Anleitung Mar 04, 2025 pm 03:49 PM

Ausführen mehrerer MySQL-Versionen auf macOS: Eine Schritt-für-Schritt-Anleitung

Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen? Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen? Mar 18, 2025 pm 12:01 PM

Wie konfiguriere ich die SSL/TLS -Verschlüsselung für MySQL -Verbindungen?

Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)? Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)? Mar 21, 2025 pm 06:28 PM

Was sind einige beliebte MySQL -GUI -Tools (z. B. MySQL Workbench, PhpMyAdmin)?

See all articles