Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Melaksanakan Berbilang Pertanyaan MySQL Secara serentak?

Bagaimanakah Saya Boleh Melaksanakan Berbilang Pertanyaan MySQL Secara serentak?

Linda Hamilton
Linda Hamiltonasal
2024-12-24 00:10:20531semak imbas

How Can I Execute Multiple MySQL Queries Simultaneously?

Mengapa Saya Tidak Boleh Menjalankan Berbilang Pertanyaan mysqli Secara serentak?

Seperti yang anda perhatikan, cuba melaksanakan dua pertanyaan MySQL berasingan menggunakan berturut-turut panggilan mysqli_query() akan mengakibatkan pertanyaan kedua gagal. Tingkah laku ini disebabkan oleh langkah keselamatan.

mysqli_multi_query() to the Rescue

Mujurlah, mysqli menyediakan fungsi mysqli_multi_query() yang direka khusus untuk melaksanakan berbilang pertanyaan dalam satu pangkalan data panggil.

Contoh Kod

Berikut ialah contoh cara menggunakan mysqli_multi_query():

$mysqli = new mysqli($host, $user, $password, $database);

// Create query string with multiple queries separated by ;
$query  = "INSERT INTO images (project_id, user_id, image_name, date_created, link_to_file, link_to_thumbnail, given_name) VALUES ('$project_id', '$user_id', '$image_name', '$date_created', '$link_to_file', '$thumbnail', '$ImageName');";
$query .= "INSERT INTO images_history (project_id, user_id, image_name, date_created, link_to_file, link_to_thumbnail, given_name, day, month, year) VALUES ('$project_id', '$user_id', '$image_name', '$date_created', '$link_to_file', '$thumbnail', '$ImageName', '$day', '$month', '$year');";

// Execute query using mysqli_multi_query()
$result = mysqli_multi_query($mysqli, $query);

// Retrieve results
if ($result) {
    do {
        $result = mysqli_store_result($mysqli);
    } while (mysqli_more_results($mysqli) && mysqli_next_result($mysqli));
} else {
    echo "First query failed: " . mysqli_error($mysqli);
}

Tambahan Pertimbangan:

  • mysqli_store_result() akan mengembalikan FALSE untuk pertanyaan tanpa set hasil, seperti pertanyaan INSERT. Semak mysqli_error() untuk mengesahkan pelaksanaan yang berjaya.
  • Perhatikan penggunaan ";" sebagai pemisah antara pertanyaan.

Dengan menggunakan mysqli_multi_query(), anda boleh melaksanakan berbilang pertanyaan dengan cekap dalam satu panggilan pangkalan data, mengelakkan isu kegagalan pertanyaan kedua.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Berbilang Pertanyaan MySQL Secara serentak?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn