diff --git a/ecrire/base/connect_sql.php b/ecrire/base/connect_sql.php
index 9417bf8907804da6dbfccec99348721fd58fa09d..4335087bd44c51174a71243dfcdd4630148a56e3 100644
--- a/ecrire/base/connect_sql.php
+++ b/ecrire/base/connect_sql.php
@@ -116,10 +116,10 @@ function spip_sql_erreur($serveur='')
 {
 	$connexion = spip_connect($serveur);
 	$e = sql_errno($serveur);
-	$m = sql_error($serveur) . ' (' . $e . ') ' . $connexion['last'];
-	$f = (isset($connexion['type']) ? $connexion['type'] : 'sql') . $serveur;
+	$t = (isset($connexion['type']) ? $connexion['type'] : 'sql');
+	$m = "Erreur $e de $t: " . sql_error($serveur) . "\n" . $connexion['last'];
+	$f = $t . $serveur;
 	spip_log($m, $f);
-	spip_log("Erreur $e de $f, voir ses Log");
 }
 
 // Cette fonction ne doit etre appelee qu'a travers la fonction sql_serveur
diff --git a/ecrire/base/create.php b/ecrire/base/create.php
index c74df1591d234f6c854797af965e5f524c4fcf67..7b41d669b9ac52aedf6fe01d607beb7f0cf717c5 100644
--- a/ecrire/base/create.php
+++ b/ecrire/base/create.php
@@ -21,12 +21,9 @@ include_spip('base/abstract_sql');
 
 // http://doc.spip.org/@creer_ou_upgrader_table
 function creer_ou_upgrader_table($table,$desc,$autoinc,$upgrade=false,$serveur='') {
-	static $fcreate = null;
-	if (!$fcreate) $fcreate = sql_serveur('create', $serveur);
-
 	$sql_desc = sql_showtable($table,true,$serveur);
 	if (!$upgrade OR !$sql_desc)
-		$fcreate($table, $desc['field'], $desc['key'], $autoinc, false, $serveur);
+		sql_create($table, $desc['field'], $desc['key'], $autoinc, false, $serveur);
 	else {
 		// ajouter les champs manquants
 		$last = '';
@@ -69,9 +66,7 @@ function maj_tables($upgrade_tables=array(),$serveur=''){
 // http://doc.spip.org/@creer_base_types_doc
 function creer_base_types_doc($serveur='') {
 	global $tables_images, $tables_sequences, $tables_documents, $tables_mime;
-	// Init ou Re-init ==> replace pas insert
 
-	$freplace = sql_serveur('replace', $serveur);
 	foreach ($tables_mime as $extension => $type_mime) {
 		if (isset($tables_images[$extension])) {
 			$titre = $tables_images[$extension];
@@ -88,8 +83,8 @@ function creer_base_types_doc($serveur='') {
 			else
 				$titre = '';
 		}
-
-		$freplace('spip_types_documents',
+		// Init ou Re-init ==> replace pas insert
+		sql_replace('spip_types_documents',
 			array('mime_type' => $type_mime,
 				'titre' => $titre,
 				'inclus' => $inclus,
diff --git a/ecrire/install/etape_3.php b/ecrire/install/etape_3.php
index f30e3c4168e41939a83158e99e1789087ded03a6..112b8edac76e163318ffb60a3fa0a4443e23310d 100644
--- a/ecrire/install/etape_3.php
+++ b/ecrire/install/etape_3.php
@@ -41,11 +41,10 @@ function install_bases($adresse_db, $login_db, $pass_db,  $server_db, $choix_db,
 	$GLOBALS['connexions'][$server_db][$GLOBALS['spip_sql_version']]
 	= $GLOBALS['spip_' . $server_db .'_functions_' . $GLOBALS['spip_sql_version']];
 
-	$fquery = sql_serveur('query', $server_db);
 	if ($choix_db == "new_spip") {
 		$re = ',^[a-z_][a-z_0-9-]*$,i';
 		if (preg_match($re, $sel_db))
-			$fquery("CREATE DATABASE `$sel_db`", $server_db);
+			sql_query("CREATE DATABASE `$sel_db`", $server_db);
 		else {
 		  $re = "Le nom de la base doit correspondre a $re";
 		  spip_log($re);
@@ -121,26 +120,24 @@ function install_bases($adresse_db, $login_db, $pass_db,  $server_db, $choix_db,
 	  // pour recreer les tables disparues au besoin
 	  spip_log("Table des Meta deja la. Verification des autres.");
 	  creer_base($server_db); 
-	  $fupdateq = sql_serveur('updateq', $server_db);
 
-	  $r = $fquery("SELECT valeur FROM spip_meta WHERE nom='version_installee'", $server_db);
+	  $r = sql_getfetsel('valeur',  'spip_meta', "nom='version_installee'", '','','','', $server_db);
 
-	  if ($r) $r = sql_fetch($r, $server_db);
-	  $version_installee = !$r ? 0 : (double) $r['valeur'];
+	  $version_installee = !$r ? 0 : (double) $r;
 	  if (!$version_installee OR ($spip_version_base < $version_installee)) {
-	    $fupdateq('spip_meta', array('valeur'=>$spip_version_base, 'impt'=>'non'), "nom='version_installee'", $server_db);
+	    sql_updateq('spip_meta', array('valeur'=>$spip_version_base, 'impt'=>'non'), "nom='version_installee'", $server_db);
 	    spip_log("nouvelle version installee: $spip_version_base");
 	  }
 	  // eliminer la derniere operation d'admin mal terminee
 	  // notamment la mise a jour 
-	  @$fquery("DELETE FROM spip_meta WHERE nom='import_all' OR  nom='admin'", $server_db);
+	  sql_query("DELETE FROM spip_meta WHERE nom='import_all' OR  nom='admin'", $server_db);
 	}
 
 	$ligne_rappel = ($server_db != 'mysql') ? ''
 	: (test_rappel_nom_base_mysql($server_db)
 	  .test_sql_mode_mysql($server_db)	);
 
-	$result_ok = @$fquery("SELECT COUNT(*) FROM spip_meta", $server_db);
+	$result_ok = sql_query("SELECT COUNT(*) FROM spip_meta", $server_db);
 	if (!$result_ok) return "<!--\nvielle = $old rappel= $ligne_rappel\n-->";
 
 	if ($chmod_db) {
diff --git a/ecrire/maj/vieille_base/create.php b/ecrire/maj/vieille_base/create.php
index 2f6b336f8790e0158efe6fa8eaccf66429e02729..361c3374a5ad0cc1a2142509bfff5cf32e76c26b 100644
--- a/ecrire/maj/vieille_base/create.php
+++ b/ecrire/maj/vieille_base/create.php
@@ -14,11 +14,9 @@ if (!defined("_ECRIRE_INC_VERSION")) return;
 
 $serveur_vieille_base =0;
 
-function	spip_create_vieille_table($table,$fields,$keys,$autoinc){
-	static $fcreate = null;
+function spip_create_vieille_table($table,$fields,$keys,$autoinc){
 	$serveur = $GLOBALS['serveur_vieille_base'];
-	if (!$fcreate) $fcreate = sql_serveur('create', $serveur);
-	$fcreate($table,$fields,$keys,$autoinc,false,$serveur);
+	sql_create($table,$fields,$keys,$autoinc,false,$serveur);
 }
 
 function maj_vieille_base_create_dist($version_cible){
diff --git a/ecrire/req/mysql.php b/ecrire/req/mysql.php
index 8e7c8449df2ae2dc76835c8d70b4aad062cb3405..ca7f42887d9fc8f44872ac5d0fc89cfa1965dee7 100644
--- a/ecrire/req/mysql.php
+++ b/ecrire/req/mysql.php
@@ -630,8 +630,7 @@ function spip_mysql_updateq($table, $champs, $where='', $desc=array(), $serveur=
 
 	if (!$champs) return;
 	if (!$desc) $desc = description_table($table);
-	if (!$desc) die("$table insertion sans description");
-	$fields =  $desc['field'];
+	if (!$desc) $champs = array(); else $fields =  $desc['field'];
 	$set = array();
 	foreach ($champs as $champ => $val) {
 		$set[] = $champ . '=' . spip_mysql_cite($val, $fields[$champ]);