From b192beb26554548080309496a39b55cba7ce2f85 Mon Sep 17 00:00:00 2001 From: Cerdic <cedric@yterium.com> Date: Mon, 4 Oct 2010 08:24:40 +0000 Subject: [PATCH] Report de [16353] et [16354] concernant les insertions vides en sqlite --- ecrire/req/sqlite_generique.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/ecrire/req/sqlite_generique.php b/ecrire/req/sqlite_generique.php index 97fc59117b..c722526d54 100644 --- a/ecrire/req/sqlite_generique.php +++ b/ecrire/req/sqlite_generique.php @@ -731,7 +731,7 @@ function spip_sqlite_insert($table, $champs, $valeurs, $desc='', $serveur='',$re $t = trace_query_start(); } else $t = 0 ; - $query="INSERT OR REPLACE INTO $table $champs VALUES $valeurs"; + $query="INSERT OR REPLACE INTO $table ".($champs?"$champs VALUES $valeurs":"DEFAULT VALUES"); if ($r = spip_sqlite_query($query, $serveur, $requeter)) { if (!$requeter) return $r; @@ -753,11 +753,19 @@ function spip_sqlite_insertq($table, $couples=array(), $desc=array(), $serveur=' 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, "(".join(',',array_keys($couples)).")", "(".join(',', $couples).")", $desc, $serveur, $requeter); + return spip_sqlite_insert($table, $cles , $valeurs , $desc, $serveur, $requeter); } -- GitLab