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"); //设置编码 $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "test"; // 创建链接 $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"); //设置编码 $servername = "localhost"; $username = "root"; $password = "root"; $dbname = "test"; // 创建连接 $conn = new mysqli($servername, $username, $password, $dbname); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } else { $sql = "INSERT INTO MyGuests VALUES(?, ?, ?)"; // 为 mysqli_stmt_prepare() 初始化 statement 对象 $stmt = mysqli_stmt_init($conn); //预处理语句 if (mysqli_stmt_prepare($stmt, $sql)) { // 绑定参数 mysqli_stmt_bind_param($stmt, 'sss', $firstname, $lastname, $email); // 设置参数并执行 $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.