PDO-vorbereitete Anweisungen zum Einfügen von Daten
Die bereitgestellte Hilfsfunktion dbSet, generiert eine SET-Anweisung zur Verwendung mit herkömmlichen MySQL-Treibern, unterstützt jedoch keine vorbereiteten PDO-Anweisungen. Um dieses Problem zu beheben, kann eine modifizierte Version der Funktion verwendet werden, die die Vorteile von PDO nutzt.
Geänderte Hilfsfunktion
Die aktualisierte dbSet-Funktion benötigt jetzt ein Array von Feldnamen und ein Verweis auf ein Array entsprechender Werte. Es erstellt eine SET-Anweisung mit Platzhaltern für jedes Feld und fügt die Werte dem Wertearray hinzu.
function dbSet($fields, &$values) { $set = ''; $values = array(); foreach ($fields as $field) { if (isset($_POST[$field])) { $set .= "`$field` = ?,"; $values[] = $_POST[$field]; } } return rtrim($set, ','); }
Beispielverwendung:
$fields = explode(" ","name surname lastname address zip fax phone date"); $_POST['date'] = $_POST['y']."-".$_POST['m']."-"$_POST['d']; $query = "UPDATE $table SET ".dbSet($fields, $values).", stamp=NOW() WHERE>
Vorteile von PDO vorbereitet Anweisungen:
Alternative Lösung: Object-Relational Mapping (ORM)
Erwägen Sie die Verwendung eines ORM wie Doctrine ORM, das die Datenpopulation und vereinfacht macht die manuelle Abfrageerstellung überflüssig.
$table = new Table(); $table->fromArray($_POST); $table->save();
Dieser Ansatz automatisiert den Prozess der Zuordnung von Eigenschaften zur Datenbank Felder basierend auf definierten Entitätsklassen.
Das obige ist der detaillierte Inhalt vonWie kann ich meine MySQL-Einfüge-/Aktualisierungsfunktion mithilfe von PDO-vorbereiteten Anweisungen verbessern?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!