Menyemak Kewujudan Baris dengan PDO
Apabila bekerja dengan pangkalan data, selalunya perlu melakukan tindakan yang berbeza bergantung pada sama ada baris wujud atau tidak. Artikel ini meneroka cara untuk menyemak kewujudan baris dengan cekap menggunakan pustaka PDO yang popular dalam PHP.
PDO dan Row Existence
PDO menyediakan antara muka yang fleksibel dan cekap untuk berinteraksi dengan pelbagai pangkalan data. Salah satu ciri hebatnya ialah kaedah prepare(), yang membolehkan anda membuat dan melaksanakan pernyataan yang disediakan.
Menyemak dengan rowCount() dan fetch()
Anda pendekatan awal menggunakan count($row) == 0 dan $stmt->rowCount() < 0 tidak berfungsi kerana rowCount() mengembalikan bilangan baris yang terjejas daripada kenyataan UPDATE, DELETE atau INSERT, bukan pernyataan SELECT. fetch() juga tidak memberikan petunjuk kewujudan baris yang boleh dipercayai.
Penyelesaian: Semakan Nilai Pulangan Terus
Untuk menyemak kewujudan baris, anda hanya boleh memeriksa nilai pulangan execute(). Jika pernyataan itu berjaya dilaksanakan dan tidak mengembalikan baris, execute() akan mengembalikan false. Anda kemudiannya boleh melakukan tindakan yang diperlukan:
<code class="php">$stmt = $conn->prepare('SELECT * FROM table WHERE ID=?'); $stmt->bindParam(1, $_GET['id'], PDO::PARAM_INT); $stmt->execute(); if( ! $stmt->execute() ) { echo 'Row not found'; }</p> <p><strong>Menyemak Tanpa Mengambil</strong></p> <p>Jika anda ingin menyemak kewujudan baris tanpa benar-benar mengambil data baris, anda boleh menggunakan MySQL keupayaan untuk mengembalikan nilai dalam bentuk kiraan. Ini membolehkan anda mengikat pembolehubah di dalam execute() dan menyemak nilainya:</p> <pre class="brush:php;toolbar:false"><code class="php">$sql = 'SELECT 1 FROM table WHERE ID = ? LIMIT 1'; $stmt = $conn->prepare($sql); $stmt->execute([$_GET['id']]); if($stmt->fetchColumn()) { echo 'Row found'; }</code>
Pendekatan ini lebih cekap kerana ia mengelakkan pengambilan data baris yang tidak perlu.
Atas ialah kandungan terperinci Cara Menyemak Kewujudan Baris dengan Cekap dengan PDO. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!