Instructions préparées par PDO pour l'insertion de données
La fonction d'assistance fournie, dbSet, génère une instruction SET à utiliser avec les pilotes MySQL traditionnels mais ne prend pas en charge les instructions préparées par PDO. Pour résoudre ce problème, une version modifiée de la fonction peut être utilisée, tirant parti des avantages de PDO.
Fonction d'assistance modifiée
La fonction dbSet mise à jour prend désormais un tableau de noms de champs et une référence à un tableau de valeurs correspondantes. Il construit une instruction SET avec des espaces réservés pour chaque champ et ajoute les valeurs au tableau de valeurs.
function dbSet($fields, &$values) { $set = ''; $values = array(); foreach ($fields as $field) { if (isset($_POST[$field])) { $set .= "`$field` = ?,"; $values[] = $_POST[$field]; } } return rtrim($set, ','); }
Exemple d'utilisation :
$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>
Avantages d'AOP Préparé Déclarations :
Solution alternative : mappage objet-relationnel (ORM)
Envisagez d'utiliser un ORM tel que Doctrine ORM, qui simplifie le remplissage des données et élimine le besoin de création manuelle de requêtes.
$table = new Table(); $table->fromArray($_POST); $table->save();
Cette approche automatise le processus de mappage des propriétés aux champs de base de données en fonction de classes d'entités définies.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!