PHP MySQL memasukkan beberapa keping data
Kami mempelajari cara menambah data pada jadual data di bahagian sebelumnya, satu demi satu Bolehkah kami menambah beberapa keping data pada satu masa data pada satu masa. Fungsi
mysqli_multi_query() boleh digunakan untuk melaksanakan berbilang pernyataan SQL.
Mari kita lihat secara langsung dengan contoh
Instance
Menambahkan tiga rekod baharu pada jadual "MyGuests" kami sebelum ini:
<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "test"; // 創(chuàng)建鏈接 $conn = mysqli_connect($servername, $username, $password, $dbname); // 檢查鏈接 if (!$conn) { die("連接失敗: " . mysqli_connect_error()); } $sql = "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('tom', 'Doe', '12032047@asd.com');"; $sql .= "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('Mary', 'Moe', 'mary@example.com');"; $sql .= "INSERT INTO MyGuests (firstname, lastname, email) VALUES ('Julie', 'Dooley', 'julie@example.com')"; if (mysqli_multi_query($conn, $sql)) { echo "新記錄插入成功"; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); } mysqli_close($conn); ?>
Keputusan berjalan program:
Rekod baharu dimasukkan Berjaya
buka jadual data anda dan lihat:
Adakah terdapat tiga keping data baharu?
Menggunakan pernyataan yang disediakan
Sambungan mysqli menyediakan cara kedua untuk memasukkan pernyataan.
Kami boleh menyediakan penyata dan mengikat parameter.
Sambungan mysql boleh menghantar pernyataan atau pertanyaan ke pangkalan data mysql tanpa data. Anda boleh mengaitkan atau "mengikat" pembolehubah secara nematik.
Instance
Gunakan pernyataan yang disediakan
<?php header("Content-type:text/html;charset=utf-8"); //設(shè)置編碼 $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "test"; // 創(chuàng)建連接 $conn = new mysqli($servername, $username, $password, $dbname); // 檢測(cè)連接 if ($conn->connect_error) { die("連接失敗: " . $conn->connect_error); } else { $sql = "INSERT INTO MyGuests VALUES(?, ?, ?)"; // 為 mysqli_stmt_prepare() 初始化 statement 對(duì)象 $stmt = mysqli_stmt_init($conn); //預(yù)處理語(yǔ)句 if (mysqli_stmt_prepare($stmt, $sql)) { // 綁定參數(shù) mysqli_stmt_bind_param($stmt, 'sss', $firstname, $lastname, $email); // 設(shè)置參數(shù)并執(zhí)行 $firstname = 'liu'; $lastname = 'Doe'; $email = 'john@example.com'; mysqli_stmt_execute($stmt); $firstname = 'zhang'; $lastname = 'Moe'; $email = 'mary@example.com'; mysqli_stmt_execute($stmt); $firstname = 'li'; $lastname = 'Dooley'; $email = 'julie@example.com'; mysqli_stmt_execute($stmt); } } ?>
Gunakan pernyataan yang disediakanNILAI tidak diikuti oleh data khusus, tetapi dengan? Sebaliknya, berapa ramai yang berada di atas? , pernyataan prapemprosesan mysqli_stmt_bind_param($stmt, 'sss', $firstname, $lastname, $email), parameter kedua mesti mempunyai beberapa "s", dan parameter kedua mewakili Jenis data: s mewakili a rentetan, dan terdapat jenis berikut:
· i - integer
· d - nombor titik terapung berketepatan dua
· s - rentetan
· b - Nilai Boolean
Apakah maksudnya, sebagai contoh, apabila kita mencipta jadual, medan nama pertama menggunakan jenis VARCHAR, jadi ia mestilah "S". medan nama pertama adalah jenis int, ia mestilah "i".
Setiap parameter mesti menentukan jenis untuk memastikan keselamatan data. Pertimbangan jenis boleh mengurangkan risiko kelemahan suntikan SQL.
Mari terangkan penyataan yang disediakan PHP dalam bahagian seterusnya.