Example #1
0
/**
 * 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);
}
Example #2
0
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);
}