1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35
|
<?php
function insert ($table, $data, PDO $pdo, $method = 'insert') {
// on vérifie d'abord les paramètres
// pas de table vide
if (empty($table))
throw new InvalidParameterException('Table parameter cannot be empty');
// au moins des données
if (empty($data))
return;
// une instance de PDO valide
if (empty($pdo))
throw new InvalidParameterException(__FUNCTION__ . ' require valid PDO instance');
// la méthode doit être soit insert soit replace
if (!in_array(strtolower($method), array('insert', 'replace')))
throw new InvalidParameterException("Method parameter must be either 'insert' or 'replace'");
// on construit la query avec autant de placeholders ? que d'élements dans $data et on les sépare
// avec des ,
$query = "$method INTO $table VALUES (" . implode(',', array_fill(0, count($data), '?')) . ")";
// on prépare la requête
$statement = $pdo->prepare($query);
// on renvoie le statut d'éxecution
return $statement->execute(array_values($data));
}
// on utilise cette fonction ainsi
var_dump(insert('ma_table', array('test' => 1, 'test2' => 2), $DB)); |
Partager