Maison >base de données >tutoriel mysql >Comment puis-je créer une fonction d'assistance aux instructions préparées PDO pour les opérations d'insertion/mise à jour ?

Comment puis-je créer une fonction d'assistance aux instructions préparées PDO pour les opérations d'insertion/mise à jour ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-23 17:36:09932parcourir

How Can I Create a PDO Prepared Statement Helper Function for Insert/Update Operations?

Instructions préparées par PDO pour la fonction d'assistance d'insertion/mise à jour

Dans les scénarios de pilotes MySQL traditionnels, la fonction dbSet() est un outil précieux pour générer Instructions SET. Cependant, lors de l'utilisation d'instructions préparées PDO, une approche similaire est nécessaire pour maintenir la sécheresse et la flexibilité du code.

Fonction d'assistance pour les instructions préparées PDO

La fonction d'assistance suivante, dbSet( ), peut être utilisé pour atteindre ceci :

function dbSet($fields, &$values) {
    $set = '';
    $values = array();

    foreach ($fields as $field) {
        if (isset($_POST[$field])) {
            $set .= "`$field` = ?,";
            $values[] = $_POST[$field];
        }
    }

    return rtrim($set, ',');
}

Utilisation

Considérons l'exemple suivant :

$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>

Alternative ORM

Pour une solution plus complète, envisagez d'utiliser un framework ORM (cartographie objet-relationnel) tel que Doctrine. Avec ORM, le remplissage des données peut être considérablement simplifié :

$table = new Table();
$table->fromArray($_POST);
$table->save();

Classe d'extension PDO

Pour une solution personnalisée, la création d'une classe d'extension PDO peut constituer un moyen pratique de gérer efficacement les requêtes d'instructions préparées, réduisant ainsi le besoin d'appels verbeux à bind_param().

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn