Rumah >pembangunan bahagian belakang >tutorial php >Bagaimanakah Saya Boleh Melaksanakan Berbilang Pertanyaan MySQL Secara Bebas dalam PHP?
Masalah:
Anda perlu melaksanakan dua pertanyaan MySQL berasingan dan mengendalikan keputusan mereka secara bebas dalam PHP. Pertanyaannya ialah:
SELECT SQL_CALC_FOUND_ROWS Id, Name FROM my_table WHERE Name LIKE '%prashant%' LIMIT 0, 10; SELECT FOUND_ROWS();
Jawapan:
Menggunakan sambungan mysql_ standard dalam PHP, tidak mungkin untuk melaksanakan berbilang pertanyaan sebagai satu transaksi. Walau bagaimanapun, anda boleh mencapai hasil yang diingini dengan mengikuti langkah berikut:
$query1 = "SELECT SQL_CALC_FOUND_ROWS Id, Name FROM my_table WHERE Name LIKE '%prashant%' LIMIT 0, 10;"; $result1 = mysql_query($query1);
$query2 = "SELECT FOUND_ROWS();"; $result2 = mysql_query($query2);
$rows1 = mysql_fetch_all($result1, MYSQL_ASSOC);
$totalRows = mysql_fetch_row($result2)[0];
Dengan mengikut langkah ini, anda boleh melaksanakan kedua-dua pertanyaan secara bebas dan mengendalikan keputusannya secara berasingan. Ambil perhatian bahawa pendekatan ini tidak secekap melaksanakannya sebagai satu transaksi, tetapi ia adalah satu-satunya cara untuk mencapai hasil yang diingini menggunakan sambungan mysql_.
Penyelesaian Alternatif (Ditamatkan):
Kemas kini: Sebelum ini difikirkan mungkin untuk melaksanakan berbilang pertanyaan dalam satu pernyataan menggunakan mysql_connect() fungsi dengan bendera. Walau bagaimanapun, kaedah ini telah ditamatkan dan tidak boleh digunakan.
Penyelesaian Moden:
Untuk aplikasi PHP moden, disyorkan untuk menggunakan PDO (Data PHP Objects) sambungan untuk interaksi pangkalan data. PDO menyediakan cara yang lebih berorientasikan objek dan konsisten untuk melaksanakan pertanyaan SQL dan mendapatkan keputusannya. Menggunakan PDO, anda boleh melaksanakan dua pertanyaan seperti berikut:
$pdo = new PDO('mysql:host=localhost;dbname=your_database', 'username', 'password'); $stmt1 = $pdo->prepare($query1); $stmt2 = $pdo->prepare($query2); $stmt1->execute(); $rows1 = $stmt1->fetchAll(PDO::FETCH_ASSOC); $stmt2->execute(); $totalRows = $stmt2->fetchColumn();
Penyelesaian ini lebih cekap dan lebih mudah digunakan daripada sambungan mysql_ yang lebih lama.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Berbilang Pertanyaan MySQL Secara Bebas dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!