Maison >développement back-end >tutoriel php >Comment puis-je créer une fonction d'aide à l'insertion/mise à jour sécurisée à l'aide des instructions préparées par PDO ?

Comment puis-je créer une fonction d'aide à l'insertion/mise à jour sécurisée à l'aide des instructions préparées par PDO ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-30 03:59:15430parcourir

How Can I Create a Secure Insert/Update Helper Function Using PDO Prepared Statements?

Fonction d'assistance d'insertion/mise à jour à l'aide d'instructions préparées PDO

Compte tenu des limites du pilote MySQL simple traditionnel, nous recherchons une solution pour créer une fonction d'assistance d'insertion/mise à jour qui utilise Fonctionnalités des déclarations préparées PDO.

Aide aux déclarations préparées Fonction

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

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

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

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>

Cette fonction d'assistance fournit une approche simple pour insérer des données à l'aide d'instructions préparées par PDO. Il réduit la répétition du code et favorise la sécurité en éliminant le besoin de concaténation directe de chaînes.

Solution alternative : mappage objet-relationnel (ORM)

Pour une solution plus complète, envisagez d'utiliser un ORM comme Doctrine. Cette approche fournit une interface intuitive pour gérer les entités de base de données, vous permettant d'effectuer des opérations telles que la sauvegarde de données avec un minimum de code :

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

En incorporant la solution ORM, vous pouvez rationaliser vos opérations de base de données et appliquer la validation des données au sein de votre modèle.

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