Cara Menyemak Kewujudan Baris dalam Pangkalan Data Menggunakan PDO
Apabila cuba melakukan tindakan bersyarat pada ketiadaan baris tertentu dalam pangkalan data, anda mungkin menghadapi kesukaran menggunakan kaedah tradisional seperti count($row) == 0 atau if($stmt->rowCount() < 0).
Pendekatan yang lebih berkesan adalah dengan memeriksa secara langsung mengembalikan nilai pertanyaan. Coretan kod berikut menggambarkan teknik ini:
<code class="php">$stmt = $conn->prepare('SELECT * FROM table WHERE ID=?'); $stmt->bindParam(1, $_GET['id'], PDO::PARAM_INT); $stmt->execute(); $row = $stmt->fetch(PDO::FETCH_ASSOC); if( ! $row) { echo 'nothing found'; }</p> <p>Kaedah ini akan kembali benar jika baris wujud dalam pangkalan data, dan palsu jika tidak.</p> <p>Untuk menyemak kewujudan berbilang baris , anda boleh menggunakan kaedah fetchAll():</p> <pre class="brush:php;toolbar:false"><code class="php">$rows = $stmt->fetchAll(PDO::FETCH_ASSOC); // Same here if( ! $rows) { echo 'nothing found'; }</code>
Dalam situasi di mana anda ingin mengelak daripada mengambil data, anda boleh mengkonfigurasi MySQL untuk mengembalikan nilai boolean dengan menggunakan pertanyaan berikut:
<code class="php">$sql = 'SELECT 1 from table WHERE id = ? LIMIT 1'; $stmt = $conn->prepare($sql); $stmt->execute([$_GET['id']]); if($stmt->fetchColumn()) echo 'found';</code>
Kaedah ini akan mengembalikan nilai bukan sifar jika baris wujud dalam pangkalan data dan palsu sebaliknya.
Atas ialah kandungan terperinci Bagaimana Anda Boleh Semak Kewujudan Baris dalam Pangkalan Data Menggunakan PDO?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!