Dalam proses membangun dengan Laravel, kadangkala anda perlu menyambung ke prosedur tersimpan dalam pangkalan data untuk melaksanakan beberapa operasi pangkalan data tertentu. Artikel ini akan memperkenalkan cara menggunakan Laravel untuk menyambungkan prosedur tersimpan dan beberapa pertimbangan.
Pertama, anda perlu mengkonfigurasi sambungan pangkalan data dalam fail config/database.php supaya Laravel boleh melakukan operasi yang sepadan pada pangkalan data. Cari konfigurasi sambungan 'mysql' dalam fail dan ubah suai parameter seperti berikut:
'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, ), ],
Antaranya, perlu diperhatikan bahawa jika sambungan pangkalan data menggunakan port tersuai, nama pengguna dan kata laluan, ia perlu berada dalam fail .env Buat konfigurasi yang sepadan dalam seperti berikut:
DB_CONNECTION=mysql DB_HOST=localhost DB_PORT=3306 DB_DATABASE=mydatabase DB_USERNAME=myusername DB_PASSWORD=mypassword
Sebelum membuat sambungan prosedur tersimpan, anda perlu mencipta prosedur tersimpan dalam pangkalan data. Mengambil MySQL sebagai contoh, dalam baris arahan atau alat MySQL, anda boleh melaksanakan pernyataan SQL yang serupa dengan yang berikut untuk mencipta prosedur tersimpan:
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
Apabila membuat prosedur tersimpan, anda perlu memberi perhatian kepada berikut:
Menyambungkan prosedur tersimpan dalam Laravel memerlukan penggunaan kelas DB. Gunakan kod berikut untuk menyambung ke prosedur yang disimpan:
$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'];
Di atas ialah langkah dan langkah berjaga-jaga khusus untuk menyambung kepada prosedur tersimpan. Dalam proses pembangunan dan penyahpepijatan sebenar, tetapan dan pengubahsuaian yang sepadan perlu dibuat mengikut situasi sebenar untuk mencapai kesan operasi pangkalan data yang ditentukan. Saya harap artikel ini akan membantu pembaca dalam menggunakan Laravel untuk menyambungkan prosedur tersimpan.
Atas ialah kandungan terperinci prosedur tersimpan sambungan laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!