PHP MySQL memasukkan beberapa data yang
Gunakan MySQLi dan PDO MySQL untuk memasukkan beberapa data yang
mysqli_multi_query () adalah fungsi yang digunakan untuk mengeksekusi beberapa pernyataan SQL.
Contoh berikut ini untuk "MyGuests" meja menambahkan tiga rekor baru:
Contoh (MySQLi - Object Oriented)
$ Servername = "localhost";
$ Username = "username";
$ Password = "password";
$ Dbname = "myDB";
// Membuat Link
$ Conn = baru mysqli ($ servername, $ username, $ password, $ dbname);
// Periksa Links
if ($ conn-> connect_error) {
die ( "Koneksi gagal:" $ conn-> connect_error.);
}
$ Sql = "INSERT INTO MyGuests (nama depan, nama belakang, email)
VALUES ( 'John', 'Doe', '[email protected]'); ";
$ Sql. = "INSERT INTO MyGuests (nama depan, nama belakang, email)
VALUES ( 'Mary', 'Moe', '[email protected]'); ";
$ Sql. = "INSERT INTO MyGuests (nama depan, nama belakang, email)
VALUES ( 'Julie', 'Dooley', '[email protected]') ";
if ($ conn-> multi_query ($ sql) === TRUE) {
echo "Rekor baru dimasukkan berhasil";
} Lain {
. Echo "Kesalahan:" $ sql "Situs" $ conn-> kesalahan; ..
}
$ Conn-> close ();
?>
Perhatikan bahwa setiap pernyataan SQL harus dipisahkan oleh titik koma. |
Contoh (MySQLi - berorientasi proses)
$ Servername = "localhost";
$ Username = "username";
$ Password = "password";
$ Dbname = "myDB";
// Membuat Link
$ Conn = mysqli_connect ($ servername, $ username, $ password, $ dbname);
// Periksa Links
if (! $ conn) {
die ( "Koneksi gagal:" mysqli_connect_error ().);
}
$ Sql = "INSERT INTO MyGuests (nama depan, nama belakang, email)
VALUES ( 'John', 'Doe', '[email protected]'); ";
$ Sql. = "INSERT INTO MyGuests (nama depan, nama belakang, email)
VALUES ( 'Mary', 'Moe', '[email protected]'); ";
$ Sql. = "INSERT INTO MyGuests (nama depan, nama belakang, email)
VALUES ( 'Julie', 'Dooley', '[email protected]') ";
jika (mysqli_multi_query ($ conn, $ sql)) {
echo "Rekor baru dimasukkan berhasil";
} Lain {
. Echo "Kesalahan:" $ sql "Situs" mysqli_error ($ conn); ..
}
mysqli_close ($ conn);
?>
Contoh (PDO)
$ Servername = "localhost";
$ Username = "username";
$ Password = "password";
$ Dbname = "myDBPDO";
try {
$ Conn = baru PDO ( "mysql: host = $ servername; dbname = $ dbname", $ username, $ password);
// Mengatur mode error PDO pengecualian
$ Conn-> setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);
// Mulai transaksi
$ Conn-> beginTransaction ();
// 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)
VALUES ( 'Mary', 'Moe', '[email protected]') ");
$ Conn-> exec ( "INSERT INTO MyGuests (nama depan, nama belakang, email)
VALUES ( 'Julie', 'Dooley', '[email protected]') ");
// Komit transaksi
$ Conn-> commit ();
echo "Rekor baru dimasukkan berhasil";
}
catch (PDOException $ e)
{
// Jika rollback gagal
$ Conn-> rollback ();
.. Echo $ sql "Situs" $ e> getMessage ();
}
$ Conn = null;
?>
Gunakan pernyataan siap
ekstensi mysqli menyediakan cara kedua untuk memasukkan laporan.
Kami menyiapkan laporan dan parameter terikat.
ekstensi mysql dapat mengirimkan data tanpa pernyataan atau permintaan ke database mysql. Anda dapat mengaitkan atau "mengikat" variabel untuk kolom.
Contoh (MySQLi menggunakan pernyataan siap)
$ Servername = "localhost";
$ Username = "username";
$ Password = "password";
$ Dbname = "myDB";
// Buat koneksi
$ Conn = baru mysqli ($ servername, $ username, $ password, $ dbname);
// Koneksi Uji
if ($ conn-> connect_error) {
die ( "Koneksi gagal:" $ conn-> connect_error.);
} Lain {
$ Sql = "INSERT INTO MyGuests NILAI (,, ???)";
// Untuk mysqli_stmt_prepare () obyek pernyataan inisialisasi
$ Stmt = mysqli_stmt_init ($ conn);
// Pernyataan Siap
jika (mysqli_stmt_prepare ($ stmt, $ sql)) {
// Parameter Bind
mysqli_stmt_bind_param ($ stmt, 'sss', $ firstname, lastname $, $ email);
// Set parameter dan melakukan
$ Nama depan = 'John';
$ Namabelakang = 'Doe';
$ Email = '[email protected]';
mysqli_stmt_execute ($ stmt);
$ Nama depan = 'Mary';
$ Namabelakang = 'Moe';
$ Email = '[email protected]';
mysqli_stmt_execute ($ stmt);
$ Nama depan = 'Julie';
$ Namabelakang = 'Dooley';
$ Email = '[email protected]';
mysqli_stmt_execute ($ stmt);
}
}
?>
Kita bisa melihat pada contoh di atas menggunakan modular untuk menangani masalah ini. Kita bisa membuat blok kode untuk membaca lebih mudah dan manajemen.
Catatan parameter terikat. Mari kita lihat mysqli_stmt_bind_param () code:
mysqli_stmt_bind_param($stmt, 'sss', $firstname, $lastname, $email);
Argumen Binding untuk query dan melewatkan parameter ke database. Parameter kedua adalah "sss". Daftar berikut menunjukkan jenis parameter. s karakter memberitahu argumen mysql adalah sebuah string.
Mungkin empat parameter berikut:
- i - bilangan bulat
- d - double-presisi angka floating-point
- s - string
- b - nilai boolean
Setiap jenis parameter harus ditentukan untuk memastikan keamanan data. Berdasarkan jenis penghakiman dapat mengurangi risiko kerentanan injeksi SQL.