Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Semak Kewujudan Baris Dengan Berkesan Menggunakan PDO?

Bagaimana untuk Semak Kewujudan Baris Dengan Berkesan Menggunakan PDO?

DDD
DDDasal
2024-10-22 09:44:30500semak imbas

How to Effectively Check Row Existence Using PDO?

Semakan Kewujudan Baris yang Cekap Menggunakan PDO

Dalam operasi pangkalan data, selalunya perlu untuk menentukan sama ada baris wujud sebelum melakukan tindakan tertentu. Dalam konteks ini, penyoal mendapatkan panduan tentang cara untuk menyemak kewujudan baris secara berkesan dalam pangkalan data menggunakan Objek Data PHP (PDO).

Untuk menangani isu ini, pendekatan pertama yang dicuba ialah menyemak kiraan yang diambil. barisan. Walau bagaimanapun, kod if (count($row) == 0) tidak berkesan kerana PDO menggunakan kaedah pengambilan untuk mendapatkan satu baris pada satu masa, oleh itu kiraan akan sentiasa 1. Begitu juga, if($stmt->rowCount( ) < 0) gagal memberikan hasil yang diingini.

Penyelesaian yang disyorkan melibatkan pemeriksaan nilai pulangan kaedah pengambilan secara langsung. Dalam contoh kod yang disediakan:

<code class="php">if( ! $row)
{
    echo 'nothing found';
}

Jika panggilan ambil tidak menghasilkan baris, ia akan mengembalikan palsu, mencetuskan syarat if. Pendekatan ini secara berkesan menentukan ketiadaan baris.

Untuk menyemak berbilang baris, kaedah fetchAll boleh digunakan:

<code class="php">$rows = $stmt->fetchAll(PDO::FETCH_ASSOC); // Same here
if( ! $rows)
{
    echo 'nothing found';
}</p>
<p>Jika kaedah fetchAll gagal mengembalikan sebarang hasil, ia juga akan kembali palsu, menyebabkan syarat if dipenuhi.</p>
<p>Selain itu, adalah mungkin untuk mengelak daripada mengambil data secara eksplisit dengan mengarahkan MySQL untuk mengembalikan nilai 1 apabila baris sepadan dengan kriteria yang ditentukan:</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 'found';</code>

Kaedah ini akan melaksanakan pertanyaan yang mengembalikan nilai 1 jika padanan ditemui, atau palsu sebaliknya. Kaedah fetchColumn mendapatkan semula lajur pertama set hasil, dalam kes ini, 1 dikembalikan secara bersyarat.

Atas ialah kandungan terperinci Bagaimana untuk Semak Kewujudan Baris Dengan Berkesan Menggunakan PDO?. 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