Show Ada banyak pernyataan yang saling bertentangan di sekitar. Apa cara terbaik untuk menghitung jumlah menggunakan PDO di PHP? Sebelum menggunakan PDO, saya hanya cukup digunakan
Apakah Anda punya saran? Jawaban:
Bukan cara yang paling elegan untuk melakukannya, ditambah lagi itu melibatkan permintaan tambahan. Memiliki PDO Dari Dokumen PDO:
EDIT: Contoh kode di atas menggunakan pernyataan yang disiapkan, yang dalam banyak kasus mungkin tidak perlu untuk tujuan menghitung baris, jadi:
Seperti yang saya tulis sebelumnya dalam jawaban untuk pertanyaan yang serupa , satu-satunya alasan yang Jadi dalam PDO, opsi Anda adalah:
Seperti yang sering terjadi, pertanyaan ini membingungkan sekali. Orang-orang datang ke sini memiliki dua tugas berbeda :
Itu dua tugas yang sangat berbeda yang tidak memiliki kesamaan dan tidak dapat diselesaikan dengan fungsi yang sama. Ironisnya, untuk keduanya Mari kita lihat mengapa Menghitung baris dalam tabel
Berarti kamu sudah melakukan kesalahan. Menggunakan Untuk tujuan ini, kode yang disarankan dalam jawaban yang diterima adalah adil. Menghitung jumlah baris yang dikembalikan.Kasus penggunaan kedua tidak seburuk yang tidak ada gunanya: jika Anda perlu tahu apakah permintaan Anda mengembalikan data, Anda selalu memiliki data itu sendiri! Katakanlah, jika Anda hanya memilih satu baris. Baiklah, Anda dapat menggunakan baris yang diambil sebagai bendera:
Jika Anda perlu mendapatkan banyak baris, maka Anda dapat menggunakannya
Ya tentu saja, untuk kasus penggunaan pertama akan dua kali lebih buruk. Tapi seperti yang sudah kita pelajari, jangan pilih baris hanya untuk menghitungnya, baik dengan Tetapi jika Anda benar-benar akan menggunakan baris yang dipilih, tidak ada yang salah dalam menggunakan
Dan tentu saja akan menjadi kegilaan mutlak untuk menjalankan kueri tambahan hanya untuk mengetahui apakah kueri Anda yang lain mengembalikan baris, seperti yang disarankan dalam dua jawaban teratas. Menghitung jumlah baris dalam hasil yang besarDalam kasus yang jarang terjadi ketika Anda perlu memilih jumlah baris yang sangat besar (dalam aplikasi konsol misalnya), Anda harus menggunakan kueri yang tidak dikacaukan , untuk mengurangi jumlah memori yang digunakan. Tetapi ini adalah kasus aktual ketika Oleh karena itu, itulah satu-satunya kasus penggunaan ketika Anda mungkin perlu menjalankan kueri tambahan, jika Anda perlu mengetahui perkiraan dekat untuk jumlah baris yang dipilih.
Ini sangat terlambat, tetapi saya mengalami masalah dan saya melakukan ini:
Ini sangat sederhana, dan mudah. :) Saya akhirnya menggunakan ini:
Posting ini sudah tua tetapi Mendapatkan jumlah baris dalam php dengan PDO sederhana
Ini adalah pos lama, tetapi frustrasi mencari alternatif. Sangat disayangkan bahwa PDO tidak memiliki fitur ini, terutama karena PHP dan MySQL cenderung berjalan seiring. Ada cacat yang disayangkan dalam menggunakan fetchColumn () karena Anda tidak dapat lagi menggunakan set hasil tersebut (secara efektif) karena fetchColumn () memindahkan jarum ke baris berikutnya. Jadi misalnya, jika Anda memiliki hasil yang mirip dengan
Jika Anda menggunakan fetchColumn () Anda dapat menemukan bahwa ada 3 buah yang dikembalikan, tetapi jika Anda sekarang mengulang hasilnya, Anda hanya memiliki dua kolom, Harga fetchColumn () adalah hilangnya kolom hasil pertama hanya untuk menemukan berapa banyak baris yang dikembalikan. Itu mengarah ke pengkodean yang ceroboh, dan benar-benar kesalahan hasil yang ditunggangi jika diterapkan. Jadi sekarang, menggunakan fetchColumn () Anda harus mengimplementasikan dan panggilan baru dan permintaan MySQL hanya untuk mendapatkan set hasil kerja yang baru. (yang semoga tidak berubah sejak permintaan terakhir Anda), saya tahu, tidak mungkin, tetapi itu bisa terjadi. Juga, overhead kueri ganda pada semua validasi jumlah baris. Yang untuk contoh ini kecil, tetapi menguraikan 2 juta baris pada kueri yang digabungkan, bukan harga yang menyenangkan untuk dibayar. Saya suka PHP dan mendukung semua orang yang terlibat dalam pengembangannya serta masyarakat luas menggunakan PHP setiap hari, tetapi sangat berharap ini dibahas dalam rilis mendatang. Ini 'benar-benar' satu-satunya keluhan saya dengan PHP PDO, yang sebaliknya adalah kelas yang hebat. Menjawab ini karena saya sudah terjebak dengan itu sekarang mengetahui ini dan mungkin itu akan berguna. Ingatlah bahwa Anda tidak dapat mengambil hasil dua kali. Anda harus menyimpan hasil
pengambilan ke dalam array, dapatkan jumlah baris
Jika Anda hanya ingin mendapatkan hitungan baris (bukan data) yaitu. menggunakan COUNT (*) dalam pernyataan yang disiapkan maka yang perlu Anda lakukan adalah mengambil hasilnya dan membaca nilainya:
Sebenarnya mengambil semua baris (data) untuk melakukan penghitungan sederhana adalah pemborosan sumber daya. Jika set hasil besar, server Anda mungkin tercekik. Untuk menggunakan variabel dalam kueri, Anda harus menggunakan
GL Ketika soal mysql bagaimana cara menghitung atau mendapatkan berapa baris dalam sebuah tabel dengan PHP PDO saya menggunakan ini
kredit jatuh ke Mike @ codeofaninja.com Satu liner cepat untuk mendapatkan entri pertama dikembalikan. Ini bagus untuk pertanyaan yang sangat mendasar.
Referensi Saya mencoba
Untuk kueri langsung di mana saya ingin baris tertentu, dan ingin tahu apakah itu ditemukan, saya menggunakan sesuatu seperti:
Ada solusi sederhana. Jika Anda menggunakan PDO terhubung ke DB Anda seperti ini:
Kemudian, permintaan ke DB adalah:
Dan akhirnya, untuk menghitung baris yang cocok dengan kueri Anda, tulis seperti ini
fetchColumn () digunakan jika ingin mendapatkan hitungan record [effisien]
pertanyaan() digunakan jika ingin mengambil data dan menghitung rekaman [opsi]
PDOStatement :: rowCount ketika Anda membuat COUNT (*) dalam pernyataan mysql Anda seperti pada
permintaan mysql Anda sudah menghitung jumlah hasil mengapa menghitung lagi di php? untuk mendapatkan hasil mysql Anda
dan Sunting: maaf untuk posting yang salah tetapi karena beberapa contoh menampilkan kueri dengan hitungan masuk, saya menyarankan menggunakan hasil mysql, tetapi jika Anda tidak menggunakan hitungan dalam sql fetchAll () lebih efisien, jika Anda menyimpan hasilnya dalam variabel Anda tidak akan kehilangan garis.
Ini adalah ekstensi custom-made dari kelas PDO, dengan fungsi pembantu untuk mengambil jumlah baris yang dimasukkan oleh kriteria "WHERE" kueri terakhir. Anda mungkin perlu menambahkan lebih banyak 'penangan', tergantung pada perintah apa yang Anda gunakan. Saat ini hanya berfungsi untuk kueri yang menggunakan "FROM" atau "UPDATE".
Anda dapat menggabungkan metode terbaik menjadi satu baris atau fungsi, dan membuat kueri baru yang dibuat secara otomatis untuk Anda:
Gunakan parameter Gunakan parametro contoh:
|