Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann man mithilfe von PDO effektiv die Existenz von Zeilen überprüfen?

Wie kann man mithilfe von PDO effektiv die Existenz von Zeilen überprüfen?

DDD
DDDOriginal
2024-10-22 09:44:30500Durchsuche

How to Effectively Check Row Existence Using PDO?

Effiziente Überprüfung der Zeilenexistenz mithilfe von PDO

Bei Datenbankoperationen ist es häufig erforderlich, festzustellen, ob eine Zeile vorhanden ist, bevor bestimmte Aktionen ausgeführt werden. In diesem Zusammenhang sucht der Fragesteller nach einer Anleitung, wie er mithilfe von PHP-Datenobjekten (PDO) effektiv auf das Vorhandensein von Zeilen in einer Datenbank prüfen kann.

Um das Problem zu beheben, bestand der erste Versuch darin, die Anzahl der abgerufenen Zeilen zu überprüfen Reihe. Der Code if (count($row) == 0) ist jedoch wirkungslos, da PDO die Fetch-Methode verwendet, um jeweils eine einzelne Zeile abzurufen, sodass count immer 1 ist. Ebenso gilt if($stmt->rowCount( ) < 0) liefert nicht das gewünschte Ergebnis.

Die empfohlene Lösung besteht darin, den Rückgabewert der Abrufmethode direkt zu untersuchen. Im bereitgestellten Codebeispiel:

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

Wenn der Abrufaufruf keine Zeile ergibt, wird „false“ zurückgegeben und die if-Bedingung ausgelöst. Dieser Ansatz stellt effektiv die Nichtexistenz von Zeilen fest.

Zum Überprüfen mehrerer Zeilen kann die fetchAll-Methode verwendet werden:

<code class="php">$rows = $stmt->fetchAll(PDO::FETCH_ASSOC); // Same here
if( ! $rows)
{
    echo 'nothing found';
}</p>
<p>Wenn die fetchAll-Methode keine Ergebnisse zurückgibt, wird sie ebenfalls zurückgegeben false, was dazu führt, dass die if-Bedingung erfüllt ist.</p>
<p>Darüber hinaus ist es möglich, das explizite Abrufen von Daten zu vermeiden, indem MySQL angewiesen wird, einen Wert von 1 zurückzugeben, wenn eine Zeile mit den angegebenen Kriterien übereinstimmt:</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>

Diese Methode führt eine Abfrage aus, die den Wert 1 zurückgibt, wenn eine Übereinstimmung gefunden wird, andernfalls false. Die fetchColumn-Methode ruft die erste Spalte der Ergebnismenge ab, in diesem Fall die bedingt zurückgegebene 1.

Das obige ist der detaillierte Inhalt vonWie kann man mithilfe von PDO effektiv die Existenz von Zeilen überprüfen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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