Ü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 auf 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üfen mit rowCount() und fetch()
Ihre Der anfängliche Ansatz mit count($row) == 0 und $stmt->rowCount()
Lösung: Direkte Rückgabewertprüfung
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:
$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';
}
Überprüfen ohne Abrufen
Wenn Sie die Existenz einer Zeile überprüfen möchten, ohne die Zeilendaten tatsächlich abzurufen, können Sie die Fähigkeit von MySQL nutzen, einen Wert in Form von a zurückzugeben zählen. Dadurch können Sie eine Variable innerhalb vonexecute() binden und ihren Wert überprüfen:
$sql = 'SELECT 1 FROM table WHERE ID = ? LIMIT 1';
$stmt = $conn->prepare($sql);
$stmt->execute([$_GET['id']]);
if($stmt->fetchColumn()) {
echo 'Row found';
}
Dieser Ansatz ist effizienter, da er das unnötige Abrufen von Zeilendaten vermeidet.
Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.
Copyright© 2022 湘ICP备2022001581号-3