Dans le domaine de la programmation MySQL, l'efficacité et la clarté du code sont primordiales. Pour rationaliser le processus de génération d'instructions SQL pour les opérations d'insertion ou de mise à jour, une fonction d'assistance peut s'avérer inestimable. Cet article présente une fonction d'assistance qui exploite les instructions préparées PDO pour y parvenir.
La fonction d'assistance suivante, dbSet, aide à générer une instruction SET pour les instructions préparées PDO. :
function dbSet($fields, &$values) { $set = ''; $values = array(); foreach ($fields as $field) { if (isset($_POST[$field])) { $set .= "`$field` = ?,"; $values[] = $_POST[$field]; } } return rtrim($set, ','); }
La fonction prend un tableau de noms de champs ($fields) et le passe par référence au tableau $values, qui contiendra les valeurs correspondantes valeurs de la requête POST. La fonction génère une instruction SET avec des espaces réservés (?) et remplit le tableau $values avec les valeurs à lier à ces espaces réservés.
Voici un exemple d'utilisation de l'assistant function :
$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>
Dans cet exemple, le tableau $fields contient les noms de champs à mettre à jour, et le tableau $_POST contient les valeurs correspondantes. L'instruction SET générée inclurait des espaces réservés pour chaque champ, tandis que le tableau $values contiendrait les valeurs réelles à lier.
Lors de l'insertion de données, le processus est similaire :
$query = "INSERT INTO $table SET ".dbSet($fields, $values); $dbh->prepare($query); $dbh->execute($values);
Cette fonction d'assistance fournit une méthode concise pour écrire des instructions préparées par PDO pour les opérations d'insertion ou de mise à jour. En éliminant le besoin de paramètres de liaison répétitifs ou de points d'interrogation, cela améliore l'efficacité du code et facilite sa maintenance.
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!