Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk melaksanakan berbilang arahan SQL sekaligus apabila mempelajari pangkalan data PHP?
Dalam artikel sebelumnya, saya membawakan anda "Fungsi biasa untuk mendapatkan hasil pertanyaan SQL dalam PHP (contoh terperinci)", yang memperkenalkan secara terperinci beberapa fungsi yang biasa digunakan semasa menanyakan pangkalan data dalam fungsi PHP artikel ini, mari kita lihat cara untuk melaksanakan berbilang arahan SQL sekaligus. Semoga ia membantu semua orang!
Dalam artikel lepas, kami memperkenalkan kepada anda fungsi biasa untuk mendapatkan hasil pertanyaan SQL Menyoal data melalui fungsi yang berbeza mengembalikan bentuk yang berbeza laksanakan satu perintah SQL pada satu masa. Terdapat fungsi dalam PHP yang membenarkan kod untuk melaksanakan berbilang perintah SQL sekaligus, iaitu fungsi mysqli_multi_query() Seterusnya, mari kita lihat fungsi mysqli_multi_query().
<strong><span style="font-size: 20px;">mysqli_multi_query()</span></strong>
Fungsi
Apabila kami memperkenalkan fungsi mysqli_query()
tadi, anda hanya boleh menjalankan fungsi ini setiap kali Laksanakan satu perintah SQL, tetapi apabila kita ingin melaksanakan berbilang perintah SQL, fungsi mysqli_query() tidak dapat memuaskan hati kita Pada masa ini, kita perlu menggunakan fungsi mysqli_multi_query()
untuk melaksanakan berbilang perintah SQL pada satu masa.
mysqli_multi_query()
Format sintaks fungsi adalah seperti berikut:
mysqli::multi_query(string $query)
Ini ialah penulisan berorientasikan objek, dan yang berikut ialah penulisan berorientasikan proses:
mysqli_multi_query(mysqli $link, string $query)
Anda perlu memberi perhatian kepada perkara ini ialah:
$query
dinyatakan sebagai pernyataan SQL untuk ditanya
$link
dinyatakan sebagai menggunakan fungsi mysqli_connect() Pengecam pautan yang dikembalikan
$query
mewakili parameter, yang boleh mengandungi berbilang perintah SQL Setiap perintah SQL dipisahkan oleh koma bertitik ;
. Fungsi ini mengembalikan TRUE jika perintah SQL pertama dilaksanakan tanpa ralat, jika tidak, ia mengembalikan FALSE.
Seterusnya, mari kita lihat penggunaan fungsi mysqli_multi_query() melalui contoh untuk melaksanakan berbilang arahan SQL Contohnya adalah seperti berikut:
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $mysql = new Mysqli($host, $username, $password, $dbname); if($mysql -> connect_errno){ die('数据库连接失败:'.$mysql->connect_errno); }else{ $sql = 'select id,name from user;'; // SQL 语句 $sql .= 'select sex,age from user'; // SQL 语句 if($mysql -> multi_query($sql)){ do{ if ($result = $mysql -> store_result()) { while ($row = $result->fetch_row()) { print_r($row); } $result->free(); } if ($mysql -> more_results()) { echo '<hr>'; }else{ break; } } while ($mysql -> next_result()); } $mysql -> close(); } ?>
Output hasil:
Keputusan di atas dilengkapkan dengan melaksanakan berbilang arahan SQL melalui fungsi mysqli_multi_query(),
Apa yang kita perlu perhatikan ialah:
Oleh kerana fungsi mysqli_multi_query()
boleh menyambung untuk melaksanakan satu atau lebih pertanyaan, dan setiap arahan SQL mungkin mengembalikan hasil, setiap set hasil perlu diperoleh apabila perlu. Oleh itu, terdapat beberapa perubahan dalam pemprosesan hasil yang dikembalikan oleh fungsi ini Hasil daripada arahan pertanyaan pertama mesti dibaca menggunakan fungsi mysqli_use_result()
atau mysqli_store_result()
.
Anda juga boleh menggunakan fungsi mysqli_store_result()
untuk mendapatkan semua keputusan kembali kepada pelanggan dengan segera, dan ia lebih cekap. Selain itu, anda boleh menggunakan fungsi mysqli_more_results()
untuk menyemak sama ada terdapat set hasil lain.
Jika anda ingin memproses set hasil seterusnya, anda boleh menggunakan fungsi mysqli_next_result()
untuk mendapatkan set hasil seterusnya Fungsi mengembalikan BENAR apabila terdapat set hasil seterusnya, dan mengembalikan FALSE apabila tiada set hasil seterusnya. Dalam kes ini, anda juga perlu menggunakan fungsi mysqli_use_result()
atau mysqli_store_result()
untuk membaca kandungan set hasil.
Di atas menggunakan kaedah berorientasikan objek Seterusnya, mari kita lihat kaedah berorientasikan proses Contohnya seperti berikut:
<?php $host = 'localhost'; $username = 'root'; $password = 'root'; $dbname = 'test'; $link = @mysqli_connect($host, $username, $password, $dbname); if($link){ $sql = 'select id,name from user;'; // SQL 语句 $sql .= 'select sex,age from user'; // SQL 语句 $result = mysqli_multi_query($link, $sql); // 执行 SQL 语句,并返回结果 do{ if($data = mysqli_use_result($link)){ while ($row = mysqli_fetch_row($data)) { print_r($row); } mysqli_free_result($data); } if(mysqli_more_results($link)){ echo '<hr>'; }else{ break; } } while (mysqli_next_result($link)); mysqli_close($link); }else{ echo '数据库连接失败!'; } ?>
Hasil output adalah sama seperti. hasil di atas, jadi kami menggunakan mysqli_multi_query( ) fungsi melengkapkan berbilang arahan SQL sekaligus.
Jika anda berminat, anda boleh klik pada "Tutorial Video PHP" untuk mengetahui lebih lanjut tentang pengetahuan PHP.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan berbilang arahan SQL sekaligus apabila mempelajari pangkalan data PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!