Rumah >pangkalan data >tutorial mysql >Bagaimana untuk Melaksanakan Berbilang Pertanyaan MySQL dengan Cekap dalam PHP?
MySQL Berbilang Pertanyaan dalam PHP
Apabila berurusan dengan operasi pangkalan data yang kompleks, melaksanakan berbilang pertanyaan dalam satu skrip PHP mungkin diperlukan. Begini cara untuk mencapainya menggunakan PHP dan MySQL:
Dalam kes anda, anda menghadapi ralat semasa cuba menggabungkan berbilang pertanyaan kepada satu hasil. Untuk menyelesaikannya, penyelesaian utama ialah menggunakan fungsi mysqli_multi_query(). Dengan menggabungkan pertanyaan anda dan menghantarnya ke fungsi ini, anda boleh melaksanakannya secara berurutan.
Berikut ialah versi semakan kod anda menggunakan mysqli_multi_query():
$link = mysqli_connect("server", "user", "password", "database"); $query = "CREATE VIEW current_rankings AS SELECT * FROM main_table WHERE date = X;"; $query .= "CREATE VIEW previous_rankings AS SELECT rank FROM main_table WHERE date = date_sub('X', INTERVAL 1 MONTH);"; $query .= "CREATE VIEW final_output AS SELECT current_rankings.player, current_rankings.rank AS current_rank, previous_rankings.rank AS prev_rank FROM current_rankings LEFT JOIN previous_rankings ON (current_rankings.player = previous_rankings.player);"; $query .= "SELECT *, @rank_change = prev_rank - current_rank AS rank_change FROM final_output;"; if (mysqli_multi_query($link, $query)) { do { if ($result = mysqli_store_result($link)) { while ($row = mysqli_fetch_array($result)) { echo $row['player'] . ' ' . $row['current_rank'] . ' ' . $row['prev_rank'] . ' ' . $row['rank_change'] . '<br>'; } mysqli_free_result($result); } } while (mysqli_next_result($link)); }
Ingat untuk menggantikan "X" dalam pertanyaan dengan parameter tarikh yang sesuai.
Alternatif Pendekatan
Jika melaksanakan pertanyaan secara berurutan adalah mencukupi, anda boleh menggunakan berbilang panggilan mysqli_query() untuk melaksanakan setiap pertanyaan secara individu. Contohnya:
$query1 = "Create temporary table A select c1 from t1;"; mysqli_query($link, $query1) or die(mysqli_error()); $query2 = "select c1 from A;"; $result2 = mysqli_query($link, $query2) or die(mysqli_error()); while ($row = mysqli_fetch_array($result2)) { echo $row['c1']; }
Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Berbilang Pertanyaan MySQL dengan Cekap dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!