Masukkan beberapa bagian data ke MySQL menggunakan MySQLi dan PDO
Fungsi mysqli_multi_query() dapat digunakan untuk mengeksekusi beberapa pernyataan SQL.
Contoh berikut menambahkan tiga catatan baru ke tabel "Tamu Saya":
Contoh (MySQLi - Berorientasi Objek)
<?php $namaserver = " localhost " ; $namapengguna = " nama pengguna " ; $kata sandi = " kata sandi " ; $namadb = " myDB " ; $sambungan = baru mysqli ( $servername , $username , $password , $dbname ) ; // Periksa tautannya jika ( $sambungan -> koneksi_kesalahan ) { die ( " Koneksi gagal: " . $ conn -> connect_error ) } $sql = " MASUKKAN KE Tamu Saya (nama depan, nama belakang, email)NILAI ('John', 'Doe', '[email protected]'); " ; $sql .= " MASUKKAN KE Tamu Saya (nama depan, nama belakang, email) NILAI ('Mary', 'Moe', '[email protected]'); " ; $sql .= " INSERT INTO MyGuests (nama depan, nama belakang, email)VALUES ('Julie', 'Dooley', '[email protected]') " ; jika ( $sambungan -> multi_query ( $sql ) === BENAR ) { gema " Catatan baru berhasil dimasukkan " ; kalau tidak { gema " Kesalahan : " . $sambungan -> tutup ( ) ? > | Harap dicatat bahwa setiap pernyataan SQL harus dipisahkan dengan titik koma. |
---|
Contoh (MySQLi - Berorientasi Prosedur)
<?php $namaserver = " localhost " ; $namapengguna = " nama pengguna " ; $kata sandi = " kata sandi " ; $namadb = " myDB " ; $conn = mysqli_connect ( $servername , $username , $password , $dbname ) ; // Periksa tautannya jika ( ! $sambungan ) { die ( " Koneksi gagal : " .mysqli_connect_error ( ) ) ; $sql = " MASUKKAN KE Tamu Saya (nama depan, nama belakang, email)NILAI ('John', 'Doe', '[email protected]'); " ; $sql .= " MASUKKAN KE Tamu Saya (nama depan, nama belakang, email) NILAI ('Mary', 'Moe', '[email protected]'); " ; $sql .= " INSERT INTO MyGuests (nama depan, nama belakang, email)VALUES ('Julie', 'Dooley', '[email protected]') " ; jika ( mysqli_multi_query ( $samb. , $sql ) ) { gema " Catatan baru berhasil dimasukkan " ; kalau tidak { gema " Kesalahan : " . mysqli_close ( $sambungan ) ? > Contoh (PDO)
<?php $namaserver = " host lokal " ; $namapengguna = " nama pengguna " ; $kata sandi = " kata sandi " ; $namadb = " myDBPDO " ; { $sambungan = baru PDO ( " mysql:host= $servername ;dbname= $dbname " , $username , $password ) ; // atur mode kesalahan PDO ke pengecualian $conn -> setAttribute ( PDO :: ATTR_ERRMODE , PDO :: ERRMODE_EXCEPTION ) ; // Mulai transaksi $sambungan -> mulaiTransaksi ( ) ; // pernyataan SQL $conn -> exec ( " INSERT INTO MyGuests (nama depan, nama belakang, email) VALUES ('John', 'Doe', '[email protected]') " ) ; $conn -> exec ( " INSERT INTO MyGuests (nama depan , nama belakang, email) NILAI ('Mary', 'Moe', '[email protected]') " ) ; $conn -> exec ( " INSERT INTO MyGuests (nama depan, nama belakang, email) VALUES ('Julie', 'Dooley', '[email protected]') " ) ; // Kirim transaksi $ sambungan -> komit ( ) ; " Catatan baru berhasil dimasukkan " ; menangkap ( PDOException $e ) { // Jika eksekusi gagal, kembalikan $ sambungan -> kembalikan ( ) ; $ sql . " <br> " . $sambungan = nol ? > Gunakan pernyataan yang sudah disiapkan
Ekstensi mysqli menyediakan cara kedua untuk menyisipkan pernyataan.
Kita dapat menyiapkan pernyataan dan mengikat parameter.
Ekstensi mysql dapat mengirim pernyataan atau pertanyaan ke database mysql tanpa data. Anda dapat mengaitkan atau "mengikat" variabel secara nematis.
Contoh (MySQLi menggunakan pernyataan yang telah disiapkan)
<?php $namaserver = " localhost " ; $namapengguna = " nama pengguna " ; $kata sandi = " kata sandi " ; $ namadb = " myDB " ; $sambungan = baru mysqli ( $servername , $username , $password , $dbname ) ; // Mendeteksi koneksi jika ( $sambungan -> koneksi_kesalahan ) { die ( " Koneksi gagal: " . $ conn -> connect_error ) } kalau tidak { $sql = " INSERT INTO MyGuests(nama depan, nama belakang, email) VALUES(?, ?, ?) " ; // Inisialisasi objek pernyataan untuk mysqli_stmt_prepare(); $stmt = mysqli_stmt_init ( $conn ) ; // Pernyataan prapemrosesan jika ( mysqli_stmt_prepare ( $stmt , $sql ) ) { // Mengikat parameter mysqli_stmt_bind_param ( $stmt , ' sss ' , $firstname , $lastname , $email ) ; // Tetapkan parameter dan jalankan $ nama depan = ' John ' ; $ nama belakang = ' Doe ' ; $ email = ' [email protected] ' ; mysqli_stmt_execute ( $ stmt ) ; $ nama depan = ' Maria ' ; @contoh.com ' ; mysqli_stmt_execute ( $stmt ) ; $nama depan = ' Julie ' ; $nama belakang = ' Dooley ' ; $ email = ' [email protected] ' ;} ?> Kita dapat melihat bahwa modularitas digunakan untuk menyelesaikan masalah pada contoh di atas. Kita dapat mempermudah pembacaan dan pengelolaan dengan membuat blok kode.
Perhatikan pengikatan parameter. Mari kita lihat kode di mysqli_stmt_bind_param():
mysqli_stmt_bind_param($stmt, 'sss', $nama depan, $nama belakang, $email);
Fungsi ini mengikat kueri parameter dan meneruskan parameter ke database. Parameter kedua adalah "sss". Daftar berikut menunjukkan tipe parameter. Karakter s memberi tahu mysql bahwa parameternya adalah string.
Ini bisa berupa empat parameter berikut:
saya - bilangan bulat
d - angka floating point presisi ganda
s - tali
b - Nilai Boolean
Setiap parameter harus menentukan jenisnya untuk memastikan keamanan data. Penilaian jenis dapat mengurangi risiko kerentanan injeksi SQL.