Rumah > rangka kerja php > Laravel > prosedur tersimpan sambungan laravel

prosedur tersimpan sambungan laravel

WBOY
Lepaskan: 2023-05-26 14:13:09
asal
721 orang telah melayarinya

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.

  1. Mengkonfigurasi sambungan pangkalan data

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,
    ),
],
Salin selepas log masuk

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
Salin selepas log masuk
  1. Buat prosedur tersimpan

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
Salin selepas log masuk

Apabila membuat prosedur tersimpan, anda perlu memberi perhatian kepada berikut:

  • kata kunci prosedur: menunjukkan bahawa prosedur yang dibuat ialah prosedur tersimpan
  • Nama prosedur tersimpan: berikut ialah my_procedure; parameter di sini, iaitu id, nama dan hasil; adalah hasil.
  • Pelaksanaan khusus untuk mencipta prosedur tersimpan ditulis mengikut keperluan perniagaan sebenar.
  • Menyambungkan prosedur tersimpan

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'];
Salin selepas log masuk
    Antaranya, apa yang perlu diberi perhatian ialah:
Gunakan kaedah DB::connection() untuk mendapatkan pangkalan data sambungan;

Dapatkan objek PDO melalui kaedah getPdo()

Gunakan kaedah prepare() untuk menyediakan pernyataan SQL yang akan dilaksanakan, di mana "?, ? dan @result" masing-masing sepadan dengan tiga parameter dalam prosedur tersimpan;
  • Gunakan kaedah bindParam() untuk mengikat pembolehubah $id dan $name kepada parameter pertama dan kedua
  • Panggil kaedah execute(). untuk melaksanakan prosedur tersimpan;
  • Gunakan kaedah query() melaksanakan pertanyaan
  • menyimpan hasil pertanyaan dalam pembolehubah $result.
  • Perlu diambil perhatian bahawa bilangan dan jenis parameter yang digunakan dalam prosedur tersimpan mestilah konsisten dengan bilangan dan jenis parameter yang digunakan semasa melaksanakan prosedur tersimpan dalam Laravel. Jika terdapat percanggahan, ia boleh menyebabkan prosedur tersimpan sambungan gagal.
  • Ringkasan

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan