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