/** * Insère une ligne dans une table, en protégeant chaque valeur * * @param string $table * Nom de la table SQL * @param string $couples * Couples (colonne => valeur) * @param array $desc * Tableau de description des colonnes de la table SQL utilisée * (il sera calculé si nécessaire s'il n'est pas transmis). * @param string $serveur * Nom du connecteur * @param bool $requeter * Exécuter la requête, sinon la retourner * @return bool|string|int|array * - int|true identifiant de l'élément inséré (si possible), ou true, si réussite * - Texte de la requête si demandé, * - False en cas d'erreur, * - Tableau de description de la requête et du temps d'exécution, si var_profile activé **/ function spip_sqlite_insertq($table, $couples = array(), $desc = array(), $serveur = '', $requeter = true) { if (!$desc) { $desc = description_table($table, $serveur); } if (!$desc) { die("{$table} insertion sans description"); } $fields = isset($desc['field']) ? $desc['field'] : array(); foreach ($couples as $champ => $val) { $couples[$champ] = _sqlite_calculer_cite($val, $fields[$champ]); } // recherche de champs 'timestamp' pour mise a jour auto de ceux-ci $couples = _sqlite_ajouter_champs_timestamp($table, $couples, $desc, $serveur); $cles = $valeurs = ""; if (count($couples)) { $cles = "(" . join(',', array_keys($couples)) . ")"; $valeurs = "(" . join(',', $couples) . ")"; } return spip_sqlite_insert($table, $cles, $valeurs, $desc, $serveur, $requeter); }
function spip_sqlite_insertq($table, $couples=array(), $desc=array(), $serveur='',$requeter=true) { if (!$desc) $desc = description_table($table); if (!$desc) die("$table insertion sans description"); $fields = isset($desc['field'])?$desc['field']:array(); foreach ($couples as $champ => $val) { $couples[$champ]= _sqlite_calculer_cite($val, $fields[$champ]); } // recherche de champs 'timestamp' pour mise a jour auto de ceux-ci $couples = _sqlite_ajouter_champs_timestamp($table, $couples, $desc, $serveur); // si aucun champ donne pour l'insertion, on en cherche un avec un DEFAULT // sinon sqlite3 ne veut pas inserer $cles = $valeurs = ""; if (count($couples)) { $cles = "(".join(',',array_keys($couples)).")"; $valeurs = "(".join(',', $couples).")"; } return spip_sqlite_insert($table, $cles , $valeurs , $desc, $serveur, $requeter); }