Heim >PHP-Framework >Laravel >Gespeicherte Prozedur für Laravel-Verbindungen
Bei der Entwicklung mit Laravel müssen Sie manchmal eine Verbindung zu den gespeicherten Prozeduren in der Datenbank herstellen, um bestimmte Datenbankoperationen auszuführen. In diesem Artikel werden die Verwendung von Laravel zum Verbinden gespeicherter Prozeduren sowie einige Überlegungen vorgestellt.
Zunächst müssen Sie die Datenbankverbindung in der Datei config/database.php konfigurieren, damit Laravel dies kann Führen Sie entsprechende Operationen in der Datenbank durch. Suchen Sie in der Datei nach der Verbindungskonfiguration „MySQL“ und ändern Sie die Parameter wie folgt:
'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'forge'), 'username' => env('DB_USERNAME', 'forge'), 'password' => env('DB_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => true, 'engine' => null, 'options' => array( PDO::ATTR_EMULATE_PREPARES => true, ), ],
Unter diesen ist zu beachten, dass die Datenbankverbindung einen benutzerdefinierten Port, Benutzernamen und ein Kennwort benötigt Nehmen Sie die entsprechende Konfiguration in der env-Datei vor, wie unten gezeigt:
DB_CONNECTION=mysql DB_HOST=localhost DB_PORT=3306 DB_DATABASE=mydatabase DB_USERNAME=myusername DB_PASSWORD=mypassword
Bevor Sie eine Verbindung zum Gespeicherten herstellen Für eine Prozedur müssen Sie zunächst eine gespeicherte Prozedur in der Datenbank erstellen. Am Beispiel von MySQL können Sie in der MySQL-Befehlszeile oder im MySQL-Tool eine SQL-Anweisung ähnlich der folgenden ausführen, um eine gespeicherte Prozedur zu erstellen:
CREATE PROCEDURE my_procedure (IN id INT, IN name VARCHAR(255), OUT result INT) BEGIN -- 在此处编写存储过程的具体代码 -- 例如:将id和name插入到数据库表中,并将插入的数据的主键返回到result变量 INSERT INTO my_table(id, name) VALUES (id, name); SET result = LAST_INSERT_ID(); END
Beim Erstellen einer gespeicherten Prozedur müssen Sie aufpassen zu Folgendem:
# 🎜🎜#$pdo = DB::connection()->getPdo(); $stmt = $pdo->prepare("CALL my_procedure(?, ?, @result)"); $stmt->bindParam(1, $id, PDO::PARAM_INT); $stmt->bindParam(2, $name, PDO::PARAM_STR); $stmt->execute(); $select = $pdo->query("SELECT @result AS result"); $result = $select->fetch(PDO::FETCH_ASSOC)['result'];
Verwenden Sie DB::connection() Methode zum Erhalten der Datenbankverbindung;# 🎜🎜#
Rufen Sie das PDO-Objekt über die Methode getPdo() ab; Verwenden Sie die Methode Prepare(), um die auszuführende SQL-Anweisung vorzubereiten „?, ? und @result“ entsprechen jeweils den Parametern der gespeicherten Prozedur 3;Das obige ist der detaillierte Inhalt vonGespeicherte Prozedur für Laravel-Verbindungen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!