So überprüfen Sie die Zeilenexistenz effizient mit PDO

Susan Sarandon
Freigeben: 2024-10-22 11:09:02
Original
917 Leute haben es durchsucht

How to Check Row Existence Efficiently with PDO

Überprüfen der Zeilenexistenz mit PDO

Bei der Arbeit mit Datenbanken ist es oft notwendig, unterschiedliche Aktionen auszuführen, je nachdem, ob eine Zeile existiert oder nicht. In diesem Artikel wird untersucht, wie Sie mithilfe der beliebten PDO-Bibliothek in PHP effizient die Existenz einer Zeile prüfen können.

PDO und Zeilenexistenz

PDO bietet eine flexible und effiziente Schnittstelle für die Interaktion mit verschiedenen Datenbanken. Eine seiner leistungsstarken Funktionen ist die Methode Prepare(), mit der Sie vorbereitete Anweisungen erstellen und ausführen können.

Überprüfung mit rowCount() und fetch()

Ihre Erster Ansatz mit count($row) == 0 und $stmt->rowCount() < 0 funktioniert nicht, da rowCount() die Anzahl der betroffenen Zeilen von einer UPDATE-, DELETE- oder INSERT-Anweisung zurückgibt, nicht von einer SELECT-Anweisung. fetch() liefert auch keinen zuverlässigen Hinweis auf die Existenz einer Zeile.

Lösung: Direkte Überprüfung des Rückgabewerts

Um die Existenz einer Zeile zu überprüfen, können Sie einfach die überprüfen Rückgabewert vonexecute(). Wenn die Anweisung erfolgreich ausgeführt wurde und keine Zeilen zurückgegeben wurde, gibtexecute() false zurück. Anschließend können Sie die erforderlichen Aktionen ausführen:

<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>Überprüfen ohne Abrufen</strong></p>
<p>Wenn Sie die Existenz einer Zeile überprüfen möchten, ohne die Zeilendaten tatsächlich abzurufen, können Sie MySQL verwenden Fähigkeit, einen Wert in Form einer Zählung zurückzugeben. Auf diese Weise können Sie eine Variable in „execute()“ binden und ihren Wert überprüfen:</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>
Nach dem Login kopieren

Dieser Ansatz ist effizienter, da er unnötiges Abrufen von Zeilendaten vermeidet.

Das obige ist der detaillierte Inhalt vonSo überprüfen Sie die Zeilenexistenz effizient mit PDO. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!