Ü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>
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!