From f7392a66f18ac3045e68e0f096afc4bf62f60fcf Mon Sep 17 00:00:00 2001
From: "Committo,Ergo:sum" <esj@rezo.net>
Date: Wed, 3 Oct 2007 21:41:36 +0000
Subject: [PATCH] =?UTF-8?q?Abstraction=20de=20tous=20les=20appels=20{{{=20?=
 =?UTF-8?q?spip=5Fquery("SELECT=20.....=20WHERE=20...=20}}}=20pour=20que?=
 =?UTF-8?q?=20les=20champs=20de=20type=20Date=20dans=20la=20clause=20WHERE?=
 =?UTF-8?q?=20soient=20transform=C3=A9=20pour=20Postgres.=20La=20Regexp=20?=
 =?UTF-8?q?pr=C3=A9c=C3=A9dent=20=C3=A9tait=20trop=20restrictive=20dans=20?=
 =?UTF-8?q?sa=20mani=C3=A8re=20d'exclure=20les=20requ=C3=AAtes=20avec=20GR?=
 =?UTF-8?q?OUP=20BY,=20ORDER=20BY=20et=20LIMIT.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Dépot obtenu par:

{{{
for i in $(grep -l 'spip_query..SELECT.*FROM.*WHERE[^YT]*;' [a-i]*/*php)
do
# Pour la clause DISTINCT, laisser intact pour le moment.
sed 's/spip_query..SELECT *\([^D]*[^ ]\) *FROM *\(.*[^ ]\) *WHERE *\([^YT]*;\)$/sql_select("\1", "\2", "\3/;s/ "" *\.//;s/ch(sql_select\(.*\));/sel\1;/' $i > x
echo $i
mv x $i
done
}}}

et une suppressions manuelle de lourdeurs syntaxiques résultantes, et ajout d'une Include.
Pas d'intervention sur le fichier inc/meta: au test, include manquant. À controler.
---
 ecrire/action/documenter.php                |  2 +-
 ecrire/action/editer_auteurs.php            |  2 +-
 ecrire/action/editer_message.php            |  2 +-
 ecrire/action/ical.php                      |  8 ++++----
 ecrire/action/instituer_forum.php           |  2 +-
 ecrire/action/instituer_rubrique_breves.php |  2 +-
 ecrire/action/pass.php                      |  2 +-
 ecrire/action/rss.php                       |  4 ++--
 ecrire/balise/formulaire_admin.php          |  2 +-
 ecrire/exec/controle_forum.php              |  4 ++--
 ecrire/exec/export_all.php                  |  2 +-
 ecrire/exec/message.php                     |  6 +++---
 ecrire/exec/naviguer.php                    |  2 +-
 ecrire/exec/statistiques_referers.php       |  4 ++--
 ecrire/exec/statistiques_visites.php        |  2 +-
 ecrire/inc/acces.php                        |  2 +-
 ecrire/inc/afficher_objets.php              |  2 +-
 ecrire/inc/agenda.php                       |  4 ++--
 ecrire/inc/ajouter_documents.php            |  4 ++--
 ecrire/inc/article_select.php               |  2 +-
 ecrire/inc/auth.php                         |  6 +++---
 ecrire/inc/auth_ldap.php                    |  2 +-
 ecrire/inc/auth_spip.php                    |  2 +-
 ecrire/inc/autoriser.php                    |  2 +-
 ecrire/inc/commencer_page.php               |  2 +-
 ecrire/inc/distant.php                      |  2 +-
 ecrire/inc/documents.php                    |  2 +-
 ecrire/inc/editer_mot.php                   |  4 ++--
 ecrire/inc/forum.php                        |  2 +-
 ecrire/inc/import_insere.php                | 12 ++++++------
 ecrire/inc/legender.php                     |  2 +-
 ecrire/inc/message_select.php               |  2 +-
 ecrire/inc/meta.php                         |  2 +-
 ecrire/inc/notifications.php                |  6 +++---
 ecrire/inc/petitionner.php                  |  2 +-
 ecrire/inc/prepare_recherche.php            |  2 +-
 ecrire/inc/presentation.php                 |  4 ++--
 ecrire/inc/regler_moderation.php            |  2 +-
 ecrire/inc/revisions.php                    | 10 +++++-----
 ecrire/inc/vieilles_defs.php                |  2 +-
 40 files changed, 65 insertions(+), 65 deletions(-)

diff --git a/ecrire/action/documenter.php b/ecrire/action/documenter.php
index d130aa1ce2..1dc8148f2f 100644
--- a/ecrire/action/documenter.php
+++ b/ecrire/action/documenter.php
@@ -56,7 +56,7 @@ function action_documenter_post($r)
 	}
 	else {
 		if ($sign)
-			$x = spip_query("SELECT docs.id_document FROM spip_documents AS docs, spip_documents_".$type."s AS l WHERE l.id_$type=$id AND l.id_document=docs.id_document AND docs.mode='document' AND docs.extension IN ('gif', 'jpg', 'png')");
+			$x = sql_select("docs.id_document", "spip_documents AS docs, spip_documents_".$type."s AS l", "l.id_$type=$id AND l.id_document=docs.id_document AND docs.mode='document' AND docs.extension IN ('gif', 'jpg', 'png')");
 		else
 			$x = spip_query("SELECT docs.id_document FROM spip_documents AS docs, spip_documents_".$type."s AS l WHERE l.id_$type=$id AND l.id_document=docs.id_document AND docs.mode='document'  AND docs.extension NOT IN ('gif', 'jpg', 'png')");
 
diff --git a/ecrire/action/editer_auteurs.php b/ecrire/action/editer_auteurs.php
index 3628033b93..19fc65b4ab 100644
--- a/ecrire/action/editer_auteurs.php
+++ b/ecrire/action/editer_auteurs.php
@@ -87,7 +87,7 @@ function ajouter_auteur_et_rediriger($type, $id, $id_auteur, $redirect)
 {
 	$jointure = table_jointure('auteur', $type);
 	if (preg_match(',^[a-z]*$,',$type)){
-		$res = spip_query("SELECT id_$type FROM spip_{$jointure} WHERE id_auteur=" . _q($id_auteur) . " AND id_{$type}=" . $id);
+		$res = sql_select("id_$type", "spip_{$jointure}", "id_auteur=" . _q($id_auteur) . " AND id_{$type}=" . $id);
 		if (!sql_count($res))
 			sql_insert("spip_{$jointure}", "(id_auteur,id_{$type})", "($id_auteur,$id)");
 
diff --git a/ecrire/action/editer_message.php b/ecrire/action/editer_message.php
index 223adf7bc8..18df99769a 100644
--- a/ecrire/action/editer_message.php
+++ b/ecrire/action/editer_message.php
@@ -83,7 +83,7 @@ function action_editer_message_post_choisir($id_message) {
 		include_spip('inc/charsets'); // pour tranlitteration
 		$id_auteur = $GLOBALS['auteur_session']['id_auteur'];
 		$cherche_auteur= _request('cherche_auteur');
-		$query = spip_query("SELECT id_auteur, nom FROM spip_auteurs WHERE messagerie<>'non' AND id_auteur<>'$connect_id_auteur' AND pass<>'' AND login<>''");
+		$query = sql_select("id_auteur, nom", "spip_auteurs", "messagerie<>'non' AND id_auteur<>'$connect_id_auteur' AND pass<>'' AND login<>''");
 		$table_auteurs = array();
 		$table_ids = array();
 		while ($row = sql_fetch($query)) {
diff --git a/ecrire/action/ical.php b/ecrire/action/ical.php
index 2e4608ff40..b2e21b5d8d 100644
--- a/ecrire/action/ical.php
+++ b/ecrire/action/ical.php
@@ -113,7 +113,7 @@ function spip_ical_rendez_vous($id_utilisateur, $nom_site)
 
 		if ($type == 'normal') {
 			$le_type = _T('info_message_2');
-			$result_auteurs=spip_query("SELECT auteurs.* FROM spip_auteurs AS auteurs, spip_auteurs_messages AS lien WHERE (lien.id_message=$id_message AND lien.id_auteur=auteurs.id_auteur)");
+			$result_auteurs=sql_select("auteurs.*", "spip_auteurs AS auteurs, spip_auteurs_messages AS lien", "(lien.id_message=$id_message AND lien.id_auteur=auteurs.id_auteur)");
 			while($row_auteur=sql_fetch($result_auteurs)){
 				$id_auteur=$row_auteur['id_auteur'];
 				$nom_auteur=$row_auteur['nom'];
@@ -162,7 +162,7 @@ function spip_ical_taches($id_utilisateur, $nom_site)
 
 		if ($type == 'normal') {
 			$le_type = _T('info_message_2');
-			$result_auteurs=spip_query("SELECT auteurs.* FROM spip_auteurs AS auteurs, spip_auteurs_messages AS lien WHERE (lien.id_message=$id_message AND lien.id_auteur=auteurs.id_auteur)");
+			$result_auteurs=sql_select("auteurs.*", "spip_auteurs AS auteurs, spip_auteurs_messages AS lien", "(lien.id_message=$id_message AND lien.id_auteur=auteurs.id_auteur)");
 			while($row_auteur=sql_fetch($result_auteurs)){
 				$id_auteur=$row_auteur['id_auteur'];
 				$nom_auteur=$row_auteur['nom'];
@@ -244,7 +244,7 @@ function spip_ical_breves($nom_site)
 // http://doc.spip.org/@spip_ical_messages
 function spip_ical_messages($id_utilisateur, $nom_site)
 {
-	$result_messages = spip_query("SELECT * FROM spip_messages AS messages, spip_auteurs_messages AS lien WHERE lien.id_auteur=$id_utilisateur AND vu='non' AND statut='publie' AND type='normal' AND lien.id_message=messages.id_message");
+	$result_messages = sql_select("*", "spip_messages AS messages, spip_auteurs_messages AS lien", "lien.id_auteur=$id_utilisateur AND vu='non' AND statut='publie' AND type='normal' AND lien.id_message=messages.id_message");
 	while($row=sql_fetch($result_messages)){
 		$id_message=$row['id_message'];
 		$date_heure=$row["date_heure"];
@@ -254,7 +254,7 @@ function spip_ical_messages($id_utilisateur, $nom_site)
 
 		if ($type == 'normal') {
 			$le_type = _T('info_message_2');
-			$result_auteurs=spip_query("SELECT auteurs.* FROM spip_auteurs AS auteurs, spip_auteurs_messages AS lien WHERE (lien.id_message=$id_message AND lien.id_auteur=auteurs.id_auteur)");
+			$result_auteurs=sql_select("auteurs.*", "spip_auteurs AS auteurs, spip_auteurs_messages AS lien", "(lien.id_message=$id_message AND lien.id_auteur=auteurs.id_auteur)");
 			while($row_auteur=sql_fetch($result_auteurs)){
 				$id_auteur=$row_auteur['id_auteur'];
 				$nom_auteur = $row_auteur['nom'];
diff --git a/ecrire/action/instituer_forum.php b/ecrire/action/instituer_forum.php
index 407c84ba59..ed471b77d5 100644
--- a/ecrire/action/instituer_forum.php
+++ b/ecrire/action/instituer_forum.php
@@ -37,7 +37,7 @@ function action_instituer_forum_dist() {
 		$id_messages = join(',', $id_messages);
 		spip_query("UPDATE spip_forum SET statut='$statut' WHERE id_forum IN ($id_messages) AND statut = '$old'");
 
-		$result_forum = spip_query("SELECT id_forum FROM spip_forum WHERE id_parent IN ($id_messages)");
+		$result_forum = sql_select("id_forum", "spip_forum", "id_parent IN ($id_messages)");
 		$id_messages = array();
 		while ($row = sql_fetch($result_forum))
 			$id_messages[] = $row['id_forum'];
diff --git a/ecrire/action/instituer_rubrique_breves.php b/ecrire/action/instituer_rubrique_breves.php
index f4830ded94..be28983ac5 100644
--- a/ecrire/action/instituer_rubrique_breves.php
+++ b/ecrire/action/instituer_rubrique_breves.php
@@ -26,7 +26,7 @@ function action_instituer_rubrique_breves_dist() {
 	$table = 'articles';
 	$key = 'id_article';
 
-	$voss = spip_query("SELECT $key AS id FROM spip_$table WHERE id_rubrique=$id AND (statut = 'publie' OR statut = 'prop')");
+	$voss = sql_select("$key AS id", "spip_$table", "id_rubrique=$id AND (statut = 'publie' OR statut = 'prop')");
 
 	while($row = sql_fetch($voss)) {
 		set_request('statut', $statut);
diff --git a/ecrire/action/pass.php b/ecrire/action/pass.php
index d04071ee5a..64d4940ef1 100644
--- a/ecrire/action/pass.php
+++ b/ecrire/action/pass.php
@@ -82,7 +82,7 @@ $message = '';
  if (!$p) {
 	  if ($oubli) $message = message_oubli($oubli, 'p');
  } else {
-	$res = spip_query("SELECT login FROM spip_auteurs WHERE cookie_oubli=" . _q($p) . " AND statut<>'5poubelle' AND pass<>''");
+	$res = sql_select("login", "spip_auteurs", "cookie_oubli=" . _q($p) . " AND statut<>'5poubelle' AND pass<>''");
 	if (!$row = sql_fetch($res)) 
 		$message = _T('pass_erreur_code_inconnu');
 	else {
diff --git a/ecrire/action/rss.php b/ecrire/action/rss.php
index 2a07fa8b23..141d5268be 100644
--- a/ecrire/action/rss.php
+++ b/ecrire/action/rss.php
@@ -80,7 +80,7 @@ function rss_suivi_messagerie($a) {
 	$s = spip_query("SELECT * FROM spip_messages AS messages, spip_auteurs_messages AS lien WHERE lien.id_auteur=".$a['id_auteur']." AND lien.id_message=messages.id_message GROUP BY messages.id_message ORDER BY messages.date_heure DESC");
 	while ($t = sql_fetch($s)) {
 		if ($compte++<10) {
-			$auteur = sql_fetch(spip_query("SELECT		auteurs.nom AS nom, auteurs.email AS email					FROM spip_auteurs AS auteurs,	spip_auteurs_messages AS lien			WHERE lien.id_message=".$t['id_message']." AND lien.id_auteur!=".$t['id_auteur']."	AND lien.id_auteur = auteurs.id_auteur"));
+			$auteur = sql_fetsel("auteurs.nom AS nom, auteurs.email AS email", "spip_auteurs AS auteurs, spip_auteurs_messages AS lien", "lien.id_message=".$t['id_message']." AND lien.id_auteur!=".$t['id_auteur']." AND lien.id_auteur = auteurs.id_auteur");
 			$item = array(
 				'title' => typo($t['titre']),
 				'date' => $t['date_heure'],
@@ -127,7 +127,7 @@ function rss_articles($critere) {
 	$rss = array();
 	$s = spip_query("SELECT * FROM spip_articles WHERE $critere ORDER BY date DESC LIMIT 10");
 	while ($t = sql_fetch($s)) {
-		$auteur = sql_fetch(spip_query("SELECT	auteurs.nom AS nom, auteurs.email AS email	FROM spip_auteurs AS auteurs, spip_auteurs_articles AS lien	WHERE lien.id_article=".$t['id_article']." AND lien.id_auteur = auteurs.id_auteur"));
+		$auteur = sql_fetsel("	auteurs.nom AS nom, auteurs.email AS email	", "spip_auteurs AS auteurs, spip_auteurs_articles AS lien	", "lien.id_article=".$t['id_article']." AND lien.id_auteur = auteurs.id_auteur");
 		$item = array(
 			'title' => typo($t['titre']),
 			'date' => $t['date'],
diff --git a/ecrire/balise/formulaire_admin.php b/ecrire/balise/formulaire_admin.php
index 58adf597e7..18781db165 100644
--- a/ecrire/balise/formulaire_admin.php
+++ b/ecrire/balise/formulaire_admin.php
@@ -81,7 +81,7 @@ function balise_FORMULAIRE_ADMIN_dyn($float='', $debug='') {
 	AND !$var_preview
 	AND autoriser('voirstats')
 	) {
-		$result = spip_query("SELECT visites, popularite FROM spip_articles WHERE id_article=$id_article AND statut='publie'");
+		$result = sql_select("visites, popularite", "spip_articles", "id_article=$id_article AND statut='publie'");
 
 		if ($row = @sql_fetch($result)) {
 			$visites = intval($row['visites']);
diff --git a/ecrire/exec/controle_forum.php b/ecrire/exec/controle_forum.php
index 927962ab17..4b1e973e7b 100644
--- a/ecrire/exec/controle_forum.php
+++ b/ecrire/exec/controle_forum.php
@@ -19,7 +19,7 @@ include_spip('inc/forum');
 
 // http://doc.spip.org/@forum_parent
 function forum_parent($id_forum) {
-	$row=sql_fetch(spip_query("SELECT * FROM spip_forum WHERE id_forum=$id_forum AND statut != 'redac'"));
+	$row=sql_fetsel("*", "spip_forum", "id_forum=$id_forum AND statut != 'redac'");
 	if (!$row) return '';
 	$id_forum=$row['id_forum'];
 	$forum_id_parent=$row['id_parent'];
@@ -172,7 +172,7 @@ function controle_un_forum($row) {
 	$controle .= safehtml(lignes_longues($suite));
 
 	if ($GLOBALS['meta']["mots_cles_forums"] == "oui") {
-	  $result_mots = spip_query("SELECT * FROM spip_mots AS mots, spip_mots_forum AS lien WHERE lien.id_forum = '$id_forum' AND lien.id_mot = mots.id_mot");
+	  $result_mots = sql_select("*", "spip_mots AS mots, spip_mots_forum AS lien", "lien.id_forum = '$id_forum' AND lien.id_mot = mots.id_mot");
 
 
 		while ($row_mots = sql_fetch($result_mots)) {
diff --git a/ecrire/exec/export_all.php b/ecrire/exec/export_all.php
index 598f7ae7ea..bae0d2c1d9 100644
--- a/ecrire/exec/export_all.php
+++ b/ecrire/exec/export_all.php
@@ -153,7 +153,7 @@ function complete_fils($rubriques)
 {
 	$r = $rubriques;
 	do {
-		$q = spip_query("SELECT id_rubrique FROM spip_rubriques WHERE id_parent IN (".join(',',$r).")");
+		$q = sql_select("id_rubrique", "spip_rubriques", "id_parent IN (".join(',',$r).")");
 		$r = array();
 		while ($row = sql_fetch($q)) {
 			$r[]= $rubriques[] = $row['id_rubrique'];
diff --git a/ecrire/exec/message.php b/ecrire/exec/message.php
index 06fa732f2e..f134709b95 100644
--- a/ecrire/exec/message.php
+++ b/ecrire/exec/message.php
@@ -28,7 +28,7 @@ function exec_message_dist()
 	$row = sql_fetsel("type", "spip_messages", "id_message=$id_message");
 
 	if ($row['type'] != "affich"){
-		$res = sql_fetch(spip_query("SELECT vu FROM spip_auteurs_messages WHERE id_auteur=$connect_id_auteur AND id_message=$id_message"));
+		$res = sql_fetsel("vu", "spip_auteurs_messages", "id_auteur=$connect_id_auteur AND id_message=$id_message");
 		if (!$res) {
 			include_spip('inc/minipres');
 			echo minipres();
@@ -63,7 +63,7 @@ function http_afficher_rendez_vous($date_heure, $date_fin)
 function http_auteurs_ressemblants($cherche_auteur, $id_message)
 {
   global $connect_id_auteur;
-  $query = spip_query("SELECT id_auteur, nom FROM spip_auteurs WHERE messagerie<>'non' AND id_auteur<>'$connect_id_auteur' AND pass<>'' AND login<>''");
+  $query = sql_select("id_auteur, nom", "spip_auteurs", "messagerie<>'non' AND id_auteur<>'$connect_id_auteur' AND pass<>'' AND login<>''");
   $table_auteurs = array();
   $table_ids = array();
   while ($row = sql_fetch($query)) {
@@ -163,7 +163,7 @@ function http_message_avec_participants($id_message, $statut, $forcer_dest, $che
 	// Liste des participants
 	//
 
-	$result_auteurs = spip_query("SELECT auteurs.id_auteur,auteurs.nom,auteurs.bio,auteurs.email,auteurs.nom_site,auteurs.url_site,auteurs.login,auteurs.pass,auteurs.low_sec,auteurs.statut,auteurs.maj,auteurs.pgp,auteurs.htpass,auteurs.en_ligne,auteurs.imessage,auteurs.messagerie,auteurs.alea_actuel,auteurs.alea_futur,auteurs.prefs,auteurs.cookie_oubli,auteurs.source,auteurs.lang, auteurs.extra FROM spip_auteurs AS auteurs, spip_auteurs_messages AS lien WHERE lien.id_message=$id_message AND lien.id_auteur=auteurs.id_auteur");
+	$result_auteurs = sql_select("auteurs.id_auteur,auteurs.nom,auteurs.bio,auteurs.email,auteurs.nom_site,auteurs.url_site,auteurs.login,auteurs.pass,auteurs.low_sec,auteurs.statut,auteurs.maj,auteurs.pgp,auteurs.htpass,auteurs.en_ligne,auteurs.imessage,auteurs.messagerie,auteurs.alea_actuel,auteurs.alea_futur,auteurs.prefs,auteurs.cookie_oubli,auteurs.source,auteurs.lang, auteurs.extra", "spip_auteurs AS auteurs, spip_auteurs_messages AS lien", "lien.id_message=$id_message AND lien.id_auteur=auteurs.id_auteur");
 
 	$total_dest = sql_count($result_auteurs);
 
diff --git a/ecrire/exec/naviguer.php b/ecrire/exec/naviguer.php
index 67135a8451..9982efa302 100644
--- a/ecrire/exec/naviguer.php
+++ b/ecrire/exec/naviguer.php
@@ -174,7 +174,7 @@ function infos_naviguer($id_rubrique, $statut, $row, $n_forums)
 	$navigation =
 	  ($boite ?debut_boite_info(true). $boite . fin_boite_info(true):"");
 
-	$q = spip_query("SELECT A.nom, A.id_auteur FROM spip_auteurs AS A LEFT JOIN spip_auteurs_rubriques AS R ON A.id_auteur=R.id_auteur WHERE R.id_rubrique=$id_rubrique");
+	$q = sql_select("A.nom, A.id_auteur", "spip_auteurs AS A LEFT JOIN spip_auteurs_rubriques AS R ON A.id_auteur=R.id_auteur", "R.id_rubrique=$id_rubrique");
 	$res = "";
 	while ($row = sql_fetch($q)) {
 		$id = $row['id_auteur'];
diff --git a/ecrire/exec/statistiques_referers.php b/ecrire/exec/statistiques_referers.php
index e3ca59c4c3..21bf15924c 100644
--- a/ecrire/exec/statistiques_referers.php
+++ b/ecrire/exec/statistiques_referers.php
@@ -30,7 +30,7 @@ function exec_statistiques_referers_dist()
 		exit;
 	}
 	if ($id_article){
-		$result = spip_query("SELECT titre, visites, popularite FROM spip_articles WHERE statut='publie' AND id_article ='$id_article'");
+		$result = sql_select("titre, visites, popularite", "spip_articles", "statut='publie' AND id_article ='$id_article'");
 
 		if ($row = sql_fetch($result)) {
 			$total_absolu = $row['visites'];
@@ -85,4 +85,4 @@ echo barre_onglets("stat_referers", $jour);
  echo fin_gauche(), fin_page();
 }
 
-?>
\ No newline at end of file
+?>
diff --git a/ecrire/exec/statistiques_visites.php b/ecrire/exec/statistiques_visites.php
index 1b3bdc4945..5d00de9170 100644
--- a/ecrire/exec/statistiques_visites.php
+++ b/ecrire/exec/statistiques_visites.php
@@ -95,7 +95,7 @@ function exec_statistiques_visites_dist()
 	$style = 'color: #999999';
 
 	if ($id_article){
-		$result = spip_query("SELECT titre, visites, popularite FROM spip_articles WHERE statut='publie' AND id_article=$id_article");
+		$result = sql_select("titre, visites, popularite", "spip_articles", "statut='publie' AND id_article=$id_article");
 
 		if ($row = sql_fetch($result)) {
 			$titre = typo($row['titre']);
diff --git a/ecrire/inc/acces.php b/ecrire/inc/acces.php
index 0651f6d971..549091f6f4 100644
--- a/ecrire/inc/acces.php
+++ b/ecrire/inc/acces.php
@@ -149,7 +149,7 @@ function ecrire_acces() {
 
 	$p1 = ''; // login:htpass pour tous
 	$p2 = ''; // login:htpass pour les admins
-	$s = spip_query("SELECT login, htpass, statut FROM spip_auteurs WHERE statut IN  ('1comite','0minirezo','nouveau')");
+	$s = sql_select("login, htpass, statut", "spip_auteurs", "statut IN  ('1comite','0minirezo','nouveau')");
 	$n = sql_count($s);
 	while ($t = sql_fetch($s)) {
 		$p1 .= $t['login'].':'.$t['htpass']."\n";
diff --git a/ecrire/inc/afficher_objets.php b/ecrire/inc/afficher_objets.php
index 30f811a7c0..f96baf18b5 100644
--- a/ecrire/inc/afficher_objets.php
+++ b/ecrire/inc/afficher_objets.php
@@ -473,7 +473,7 @@ function afficher_articles_trad_boucle($row)
 	$dates_art = "";
 	$l = "";
 
-	$res_trad = spip_query("SELECT id_article, lang, date_modif  FROM spip_articles WHERE id_trad = $id_trad AND id_trad > 0");
+	$res_trad = sql_select("id_article, lang, date_modif", "spip_articles", "id_trad = $id_trad AND id_trad > 0");
 
 	while ($row_trad = sql_fetch($res_trad)) {
 
diff --git a/ecrire/inc/agenda.php b/ecrire/inc/agenda.php
index 63fbed1d08..aeccc8b7af 100644
--- a/ecrire/inc/agenda.php
+++ b/ecrire/inc/agenda.php
@@ -1453,7 +1453,7 @@ function quete_calendrier_interval_rv($avant, $apres) {
 		    else {
 		      $cat = 'calendrier-couleur9';
 		      $auteurs = array();
-		      $result_aut=spip_query("SELECT nom FROM spip_auteurs AS auteurs, spip_auteurs_messages AS lien WHERE	(lien.id_message=$id_message  AND	(auteurs.id_auteur!=$connect_id_auteur  AND	lien.id_auteur=auteurs.id_auteur))");
+		      $result_aut=sql_select("nom", "spip_auteurs AS auteurs, spip_auteurs_messages AS lien", "	(lien.id_message=$id_message  AND	(auteurs.id_auteur!=$connect_id_auteur  AND	lien.id_auteur=auteurs.id_auteur))");
 			while($row_auteur=sql_fetch($result_aut)){
 				$auteurs[] = $row_auteur['nom'];
 			}
@@ -1529,7 +1529,7 @@ function quete_calendrier_taches_pb () {
 	$r = array();
 	if (!$connect_id_auteur) return $r;
 
-	$result = spip_query("SELECT texte AS description, id_message AS uid, date_heure AS dtstart, date_fin AS dtend, titre AS summary, type AS category, rv AS location FROM spip_messages AS messages WHERE id_auteur=$connect_id_auteur AND statut='publie' AND type='pb' AND rv!='oui'");
+	$result = sql_select("texte AS description, id_message AS uid, date_heure AS dtstart, date_fin AS dtend, titre AS summary, type AS category, rv AS location", "spip_messages AS messages", "id_auteur=$connect_id_auteur AND statut='publie' AND type='pb' AND rv!='oui'");
 
 	while ($row = sql_fetch($result)) {
 		$row['url'] = tache_redirige($row);
diff --git a/ecrire/inc/ajouter_documents.php b/ecrire/inc/ajouter_documents.php
index 0400f0ce5b..6ed636e563 100644
--- a/ecrire/inc/ajouter_documents.php
+++ b/ecrire/inc/ajouter_documents.php
@@ -94,7 +94,7 @@ function ajouter_un_document($source, $nom_envoye, $type_lien, $id_lien, $mode,
 /*			$ext = 'bin';
 			$nom_envoye .= '.bin';
 			spip_log("Extension $ext");
-			$row = sql_fetch(spip_query("SELECT * FROM spip_types_documents WHERE extension='bin' AND upload='oui'"));
+			$row = sql_fetsel("*", "spip_types_documents", "extension='bin' AND upload='oui'");
 			if (!$row) {
 				spip_log("Extension $ext interdite a l'upload");
 				return;
@@ -103,7 +103,7 @@ function ajouter_un_document($source, $nom_envoye, $type_lien, $id_lien, $mode,
 
 /* STOCKER LES DOCUMENTS INCONNUS AU FORMAT .ZIP */
 			$ext = 'zip';
-			$row = sql_fetch(spip_query("SELECT * FROM spip_types_documents WHERE extension='zip' AND upload='oui'"));
+			$row = sql_fetsel("*", "spip_types_documents", "extension='zip' AND upload='oui'");
 			if (!$row) {
 				spip_log("Extension $ext interdite a l'upload");
 				return;
diff --git a/ecrire/inc/article_select.php b/ecrire/inc/article_select.php
index 2976beb6b9..188e6c747f 100644
--- a/ecrire/inc/article_select.php
+++ b/ecrire/inc/article_select.php
@@ -122,7 +122,7 @@ function article_select_trad($lier_trad) {
 
 				$id_parent = $row_rub['id_parent'];
 			}
-			$row_rub = sql_fetch(spip_query("SELECT id_rubrique FROM spip_rubriques WHERE lang='".$GLOBALS['spip_lang']."' AND id_parent=$id_parent"));
+			$row_rub = sql_fetsel("id_rubrique", "spip_rubriques", "lang='".$GLOBALS['spip_lang']."' AND id_parent=$id_parent");
 			if ($row_rub)
 				$row['id_rubrique'] = $row_rub['id_rubrique'];
 		}
diff --git a/ecrire/inc/auth.php b/ecrire/inc/auth.php
index f7d8ebd287..e4c3143b73 100644
--- a/ecrire/inc/auth.php
+++ b/ecrire/inc/auth.php
@@ -12,7 +12,7 @@
 
 if (!defined("_ECRIRE_INC_VERSION")) return;
 
-
+include_spip('base/abstract_sql');
 //
 // Fonctions de gestion de l'acces restreint aux rubriques
 //
@@ -27,7 +27,7 @@ function acces_restreint_rubrique($id_rubrique) {
 // http://doc.spip.org/@auteurs_article
 function auteurs_article($id_article, $cond='')
 {
-	return spip_query("SELECT id_auteur FROM spip_auteurs_articles WHERE id_article=$id_article". ($cond ? " AND $cond" : ''));
+	return sql_select("id_auteur", "spip_auteurs_articles", "id_article=$id_article". ($cond ? " AND $cond" : ''));
 }
 
 // http://doc.spip.org/@auteurs_autorises
@@ -124,7 +124,7 @@ function inc_auth_dist() {
 
 	// Trouver les autres infos dans la table auteurs.
 	// le champ 'quand' est utilise par l'agenda
-	$result = spip_query("SELECT *, en_ligne AS quand FROM spip_auteurs WHERE $where AND statut!='5poubelle'");
+	$result = sql_select("*, en_ligne AS quand", "spip_auteurs", "$where AND statut!='5poubelle'");
 	if (!$row = sql_fetch($result)) {
 		// il n'est PLUS connu. c'est SQL qui est desyncrho
 		auth_areconnecter($connect_login);
diff --git a/ecrire/inc/auth_ldap.php b/ecrire/inc/auth_ldap.php
index f720d69a25..6fb8a02b22 100644
--- a/ecrire/inc/auth_ldap.php
+++ b/ecrire/inc/auth_ldap.php
@@ -27,7 +27,7 @@ function inc_auth_ldap_dist ($login, $pass) {
 	if (!($dn = auth_ldap_search($login, $pass))) return array();
 
 	// Si l'utilisateur figure deja dans la base, y recuperer les infos
-	$result = spip_query("SELECT * FROM spip_auteurs WHERE login=" . _q($login) . " AND source='ldap'");
+	$result = sql_select("*", "spip_auteurs", "login=" . _q($login) . " AND source='ldap'");
 
 	// sinon importer les infos depuis LDAP, 
 	// avec le statut par defaut a l'install
diff --git a/ecrire/inc/auth_spip.php b/ecrire/inc/auth_spip.php
index 94615b6667..efa6b7beca 100644
--- a/ecrire/inc/auth_spip.php
+++ b/ecrire/inc/auth_spip.php
@@ -33,7 +33,7 @@ function inc_auth_spip_dist ($login, $pass) {
 	// login inexistant ou mot de passe vide
 	if (!$md5pass) return array();
 
-	$result = spip_query("SELECT * FROM spip_auteurs WHERE login=" . _q($login) . " AND pass=" . _q($md5pass) . " AND statut<>'5poubelle'");
+	$result = sql_select("*", "spip_auteurs", "login=" . _q($login) . " AND pass=" . _q($md5pass) . " AND statut<>'5poubelle'");
 	$row = sql_fetch($result);
 
 	// login/mot de passe incorrect
diff --git a/ecrire/inc/autoriser.php b/ecrire/inc/autoriser.php
index af0320fe98..8d028c6953 100644
--- a/ecrire/inc/autoriser.php
+++ b/ecrire/inc/autoriser.php
@@ -552,7 +552,7 @@ function liste_rubriques_auteur($id_auteur, $raz=false) {
 	if ($raz) unset($restreint[$id_auteur]);
 	elseif (isset($restreint[$id_auteur])) return $restreint[$id_auteur];
 
-	$q = spip_query("SELECT id_rubrique FROM spip_auteurs_rubriques WHERE id_auteur=$id_auteur AND id_rubrique!=0");
+	$q = sql_select("id_rubrique", "spip_auteurs_rubriques", "id_auteur=$id_auteur AND id_rubrique!=0");
 
 	// Recurrence sur les sous-rubriques
 	$rubriques = array();
diff --git a/ecrire/inc/commencer_page.php b/ecrire/inc/commencer_page.php
index 6b53f53732..e089a60c2a 100644
--- a/ecrire/inc/commencer_page.php
+++ b/ecrire/inc/commencer_page.php
@@ -188,7 +188,7 @@ function init_body($rubrique='accueil', $sous_rubrique='accueil', $id_rubrique='
 // http://doc.spip.org/@avertissement_messagerie
 function avertissement_messagerie($id_auteur) {
 
-	$result_messages = spip_query("SELECT lien.id_message FROM spip_messages AS messages, spip_auteurs_messages AS lien WHERE lien.id_auteur="._q($id_auteur)." AND vu='non' AND statut='publie' AND type='normal' AND lien.id_message=messages.id_message");
+	$result_messages = sql_select("lien.id_message", "spip_messages AS messages, spip_auteurs_messages AS lien", "lien.id_auteur="._q($id_auteur)." AND vu='non' AND statut='publie' AND type='normal' AND lien.id_message=messages.id_message");
 	$total_messages = @sql_count($result_messages);
 	if ($total_messages == 1) {
 		$row = @sql_fetch($result_messages);
diff --git a/ecrire/inc/distant.php b/ecrire/inc/distant.php
index 0be237872a..415683af2a 100644
--- a/ecrire/inc/distant.php
+++ b/ecrire/inc/distant.php
@@ -287,7 +287,7 @@ function fichier_copie_locale($source) {
 	}
 
 	// Chercher d'abord le doc dans la table des documents, pour se baser sur son type reel
-	$s = spip_query("SELECT extension FROM spip_documents WHERE fichier=" . _q($source) . " AND distant='oui' AND extension>''");
+	$s = sql_select("extension", "spip_documents", "fichier=" . _q($source) . " AND distant='oui' AND extension>''");
 	if ($t = sql_fetch($s)) {
 		$extension = $t['extension'];
 
diff --git a/ecrire/inc/documents.php b/ecrire/inc/documents.php
index b4b6939b3a..09da0c8a4a 100644
--- a/ecrire/inc/documents.php
+++ b/ecrire/inc/documents.php
@@ -298,7 +298,7 @@ function afficher_case_document($id_document, $id, $script, $type, $deplier=fals
 	global $spip_lang_right;
 
 	charger_generer_url();
-	$res = spip_query("SELECT docs.id_document, docs.id_vignette,docs.extension,docs.titre,docs.descriptif,docs.fichier,docs.largeur,docs.hauteur,docs.taille,docs.mode,docs.distant, docs.date, l.vu FROM spip_documents AS docs JOIN spip_documents_".$type."s AS l ON l.id_document=docs.id_document WHERE l.id_$type="._q($id)." AND l.id_document="._q($id_document));
+	$res = sql_select("docs.id_document, docs.id_vignette,docs.extension,docs.titre,docs.descriptif,docs.fichier,docs.largeur,docs.hauteur,docs.taille,docs.mode,docs.distant, docs.date, l.vu", "spip_documents AS docs JOIN spip_documents_".$type."s AS l ON l.id_document=docs.id_document", "l.id_$type="._q($id)." AND l.id_document="._q($id_document));
 	if (!$document = sql_fetch($res)) return "";
 	//$document = sql_fetsel("*", "spip_documents", "id_document = " . intval($id_document));
 
diff --git a/ecrire/inc/editer_mot.php b/ecrire/inc/editer_mot.php
index 0a7019e658..59e4494933 100644
--- a/ecrire/inc/editer_mot.php
+++ b/ecrire/inc/editer_mot.php
@@ -238,7 +238,7 @@ function afficher_mots_cles($flag_editable, $objet, $id_objet, $table, $table_id
 // http://doc.spip.org/@formulaire_mot_remplace
 function formulaire_mot_remplace($id_groupe, $id_mot, $url_base, $table, $table_id, $objet, $id_objet)
 {
-	$result = spip_query("SELECT id_mot, titre FROM spip_mots WHERE id_groupe = $id_groupe ORDER by titre");
+	$result = spip_query("SELECT id_mot, titre FROM spip_mots WHERE id_groupe = $id_groupe ORDER BY titre");
 
 	$s = '';
 
@@ -405,6 +405,6 @@ function menu_mots($row, $id_groupes_vus, $les_mots)
 function editer_mot_droits($select, $cond)
 {
 	$droit = substr($GLOBALS['auteur_session']['statut'],1);
-	return spip_query("SELECT $select FROM spip_groupes_mots WHERE $droit = 'oui' AND $cond");
+	return sql_select("$select", "spip_groupes_mots", "$droit = 'oui' AND $cond");
 }
 ?>
diff --git a/ecrire/inc/forum.php b/ecrire/inc/forum.php
index cc5c725560..c4c0a2d8c7 100644
--- a/ecrire/inc/forum.php
+++ b/ecrire/inc/forum.php
@@ -306,7 +306,7 @@ function generer_url_forum_parent($id_forum) {
 // sous forme d'un forum en reponse, de statut 'original'
 // http://doc.spip.org/@conserver_original
 function conserver_original($id_forum) {
-	$s = spip_query("SELECT id_forum FROM spip_forum WHERE id_parent="._q($id_forum)." AND statut='original'");
+	$s = sql_select("id_forum", "spip_forum", "id_parent="._q($id_forum)." AND statut='original'");
 
 	if (sql_count($s))
 		return ''; // pas d'erreur
diff --git a/ecrire/inc/import_insere.php b/ecrire/inc/import_insere.php
index bd0480be82..5939d8d11c 100644
--- a/ecrire/inc/import_insere.php
+++ b/ecrire/inc/import_insere.php
@@ -291,7 +291,7 @@ function import_identifie_id_document($values, $table, $desc, $request) {
 	$t = $values['taille'];
 	$f = $values['fichier'];
 	$h = $request['url_site'] . $f;
-	$r = sql_fetch(spip_query("SELECT id_document AS id, fichier AS titre, distant FROM spip_documents WHERE taille=" . _q($t) . " AND (fichier=" . _q($f) . " OR fichier= " . _q($h) . ')'));
+	$r = sql_fetsel("id_document AS id, fichier AS titre, distant", "spip_documents", "taille=" . _q($t) . " AND (fichier=" . _q($f) . " OR fichier= " . _q($h) . ')');
 	if (!$r) return false;
 	if (($r['distant'] != 'oui')
 	AND !file_exists(_DIR_IMG . $r['titre']))
@@ -306,7 +306,7 @@ function import_identifie_id_document($values, $table, $desc, $request) {
 function import_identifie_id_type($values, $table, $desc, $request) {
 	$e = $values['extension'];
 	$t = $values['titre'];
-	$r = sql_fetch(spip_query("SELECT id_type AS id, titre FROM spip_types_documents WHERE extension=" . _q($e) . " AND titre=" . _q($t)));
+	$r = sql_fetsel("id_type AS id, titre", "spip_types_documents", "extension=" . _q($e) . " AND titre=" . _q($t));
 	return $r ? array($r['id'], $r['titre']) : false;
 }
 
@@ -334,7 +334,7 @@ function import_identifie_parent_id_mot($id_groupe, $titre, $v)
 	if (isset($trans['id_groupe'])
 	AND isset($trans['id_groupe'][$id_groupe])) {
 		$new = $trans['id_groupe'][$id_groupe][0];
-		$r = sql_fetch(spip_query("SELECT id_mot FROM spip_mots WHERE titre=$titre AND id_groupe=$new" ));
+		$r = sql_fetsel("id_mot", "spip_mots", "titre=$titre AND id_groupe=$new" );
 		if ($r) return  (0 - $r['id_mot']);
 	}
 	if ($r = sql_insert('spip_mots', '()', '()'))
@@ -362,7 +362,7 @@ function import_identifie_parent_id_article($id_parent, $titre, $v)
 	$id_parent = importe_translate_maj('id_rubrique', (0 - $id_parent));
 
 	$titre = _q($titre);
-	$r = sql_fetch(spip_query("SELECT id_article FROM spip_articles WHERE titre=$titre AND id_rubrique=$id_parent AND statut<>'poubelle'" ));
+	$r = sql_fetsel("id_article", "spip_articles", "titre=$titre AND id_rubrique=$id_parent AND statut<>'poubelle'" );
 	if ($r) return (0 - $r['id_article']);
 
 	if ($r = sql_insert('spip_articles', '()', '()'))
@@ -392,7 +392,7 @@ function import_identifie_parent_id_breve($id_parent, $titre, $v)
 	$id_parent = importe_translate_maj('id_rubrique', (0 - $id_parent));
 
 	$titre = _q($titre);
-	$r = sql_fetch(spip_query("SELECT id_breve FROM spip_breves WHERE titre=$titre AND id_rubrique=$id_parent AND statut<>'refuse'" ));
+	$r = sql_fetsel("id_breve", "spip_breves", "titre=$titre AND id_rubrique=$id_parent AND statut<>'refuse'" );
 	if ($r) return (0 - $r['id_breve']);
 
 	if ($r = sql_insert('spip_breves', '()', '()'))
@@ -443,7 +443,7 @@ function import_identifie_parent_id_rubrique($id_parent, $titre, $v)
 			}
 		}
 
-		$r = sql_fetch(spip_query("SELECT id_rubrique FROM spip_rubriques WHERE titre=" . _q($titre) . " AND id_parent=" . intval($id_parent)));
+		$r = sql_fetsel("id_rubrique", "spip_rubriques", "titre=" . _q($titre) . " AND id_parent=" . intval($id_parent));
 		if ($r)  {
 		  return (0 - $r['id_rubrique']);
 		}
diff --git a/ecrire/inc/legender.php b/ecrire/inc/legender.php
index b016a46c85..3927e779f7 100644
--- a/ecrire/inc/legender.php
+++ b/ecrire/inc/legender.php
@@ -37,7 +37,7 @@ function inc_legender_dist($id_document, $document, $script, $type, $id, $ancre,
 		$res = sql_select("*", "spip_documents", "id_document = " . intval($id_document));
 		$document = sql_fetch($res);
 		$document['vu'] = 'non';
-		$res = spip_query("SELECT vu FROM spip_documents_".$type."s WHERE id_$type=$id AND id_document=".intval($id_document));
+		$res = sql_select("vu", "spip_documents_".$type."s", "id_$type=$id AND id_document=".intval($id_document));
 		if ($row = sql_fetch($res))
 			$document['vu'] = $row['vu'];
 		$flag = 'ajax';
diff --git a/ecrire/inc/message_select.php b/ecrire/inc/message_select.php
index 5c9c815b71..c49d041d9a 100644
--- a/ecrire/inc/message_select.php
+++ b/ecrire/inc/message_select.php
@@ -92,7 +92,7 @@ function afficher_message_boucles($row, &$messages_vus, $voir_logo, $afficher_au
 			// Auteurs
 
 	if ($afficher_auteurs) {
-		$result_auteurs = spip_query("SELECT auteurs.id_auteur, auteurs.nom FROM spip_auteurs AS auteurs, spip_auteurs_messages AS lien WHERE lien.id_message=$id_message AND lien.id_auteur!=$connect_id_auteur AND lien.id_auteur=auteurs.id_auteur");
+		$result_auteurs = sql_select("auteurs.id_auteur, auteurs.nom", "spip_auteurs AS auteurs, spip_auteurs_messages AS lien", "lien.id_message=$id_message AND lien.id_auteur!=$connect_id_auteur AND lien.id_auteur=auteurs.id_auteur");
 
 		$auteurs = '';
 		while ($row_auteurs = sql_fetch($result_auteurs)) {
diff --git a/ecrire/inc/meta.php b/ecrire/inc/meta.php
index 45829a04e8..fdff4b630a 100644
--- a/ecrire/inc/meta.php
+++ b/ecrire/inc/meta.php
@@ -69,7 +69,7 @@ function ecrire_meta($nom, $valeur, $importable = NULL) {
 
 	if (!$nom) return;
 	$GLOBALS['meta'][$nom] = $valeur;
-	$res = spip_query("SELECT impt,valeur FROM spip_meta WHERE nom=" . _q($nom));
+	$res = sql_select("impt,valeur", "spip_meta", "nom=" . _q($nom));
 	if (!$res) return; 
 	include_spip('base/abstract_sql');
 	$res = sql_fetch($res);
diff --git a/ecrire/inc/notifications.php b/ecrire/inc/notifications.php
index 46718f0f56..d4cab3533d 100644
--- a/ecrire/inc/notifications.php
+++ b/ecrire/inc/notifications.php
@@ -61,7 +61,7 @@ function extrait_article($row) {
 	$statut = $row['statut'];
 
 	$les_auteurs = "";
-	$result_auteurs = spip_query("SELECT nom FROM spip_auteurs AS auteurs, spip_auteurs_articles AS lien WHERE lien.id_article=$id_article AND auteurs.id_auteur=lien.id_auteur");
+	$result_auteurs = sql_select("nom", "spip_auteurs AS auteurs, spip_auteurs_articles AS lien", "lien.id_article=$id_article AND auteurs.id_auteur=lien.id_auteur");
 
 	while ($row = sql_fetch($result_auteurs)) {
 		if ($les_auteurs) $les_auteurs .= ', ';
@@ -257,7 +257,7 @@ function notifications_forumvalide_dist($quoi, $id_forum) {
 	// pas le droit de le moderer (les autres l'ont recu plus tot)
 	if ($t['id_article']
 	AND $GLOBALS['meta']['prevenir_auteurs'] == 'oui') {
-		$result = spip_query("SELECT auteurs.id_auteur, auteurs.email FROM spip_auteurs AS auteurs, spip_auteurs_articles AS lien WHERE lien.id_article="._q($t['id_article'])." AND auteurs.id_auteur=lien.id_auteur");
+		$result = sql_select("auteurs.id_auteur, auteurs.email", "spip_auteurs AS auteurs, spip_auteurs_articles AS lien", "lien.id_article="._q($t['id_article'])." AND auteurs.id_auteur=lien.id_auteur");
 
 		while ($qui = sql_fetch($result)) {
 			if (!autoriser('modererforum', 'article', $t['id_article'], $qui['id_auteur']))
@@ -310,7 +310,7 @@ function notifications_forumposte_dist($quoi, $id_forum) {
 	// avertis par la notifications_forumvalide).
 	if ($t['id_article']
 	AND $GLOBALS['meta']['prevenir_auteurs'] == 'oui') {
-		$result = spip_query("SELECT auteurs.id_auteur, auteurs.email FROM spip_auteurs AS auteurs, spip_auteurs_articles AS lien WHERE lien.id_article="._q($t['id_article'])." AND auteurs.id_auteur=lien.id_auteur");
+		$result = sql_select("auteurs.id_auteur, auteurs.email", "spip_auteurs AS auteurs, spip_auteurs_articles AS lien", "lien.id_article="._q($t['id_article'])." AND auteurs.id_auteur=lien.id_auteur");
 
 		while ($qui = sql_fetch($result)) {
 			if (autoriser('modererforum', 'article', $t['id_article'], $qui['id_auteur']))
diff --git a/ecrire/inc/petitionner.php b/ecrire/inc/petitionner.php
index 148e190331..43120ac9de 100644
--- a/ecrire/inc/petitionner.php
+++ b/ecrire/inc/petitionner.php
@@ -72,7 +72,7 @@ function petitionner_choisir($petition)
 // http://doc.spip.org/@petitionner_decompte
 function petitionner_decompte($id_article, $petition)
 {
-	$signatures = sql_fetch(spip_query("SELECT COUNT(*) AS count FROM spip_signatures WHERE id_article=$id_article AND statut IN ('publie', 'poubelle')"));
+	$signatures = sql_fetsel("COUNT(*) AS count", "spip_signatures", "id_article=$id_article AND statut IN ('publie', 'poubelle')");
 	$signatures = $signatures['count'];
 	if (!$signatures) return '';
 
diff --git a/ecrire/inc/prepare_recherche.php b/ecrire/inc/prepare_recherche.php
index 3560060e9b..26914a0cc2 100644
--- a/ecrire/inc/prepare_recherche.php
+++ b/ecrire/inc/prepare_recherche.php
@@ -59,7 +59,7 @@ function inc_prepare_recherche_dist($recherche, $table='articles', $cond=false)
 		# Pour les forums, unifier par id_thread et forcer statut='publie'
 		if ($x == 'forum' AND $points) {
 			$p2 = array();
-			$s = spip_query("SELECT id_thread, id_forum FROM spip_forum WHERE statut='publie' AND ".calcul_mysql_in('id_forum', array_keys($points)));
+			$s = sql_select("id_thread, id_forum", "spip_forum", "statut='publie' AND ".calcul_mysql_in('id_forum', array_keys($points)));
 			while ($t = sql_fetch($s))
 				$p2[intval($t['id_thread'])]['score']
 					+= $points[intval($t['id_forum'])]['score'];
diff --git a/ecrire/inc/presentation.php b/ecrire/inc/presentation.php
index e0a6499de8..5059a0d200 100644
--- a/ecrire/inc/presentation.php
+++ b/ecrire/inc/presentation.php
@@ -734,7 +734,7 @@ function afficher_forum_thread($row, $controle_id_article, $compteur_forum, $nb_
 // http://doc.spip.org/@afficher_forum_mots
 function afficher_forum_mots($id_forum)
 {
-	$result = spip_query("SELECT titre, type FROM spip_mots AS mots, spip_mots_forum AS lien WHERE lien.id_forum = '$id_forum' AND lien.id_mot = mots.id_mot");
+	$result = sql_select("titre, type", "spip_mots AS mots, spip_mots_forum AS lien", "lien.id_forum = '$id_forum' AND lien.id_mot = mots.id_mot");
 
 	$res = "";
 	while ($row = sql_fetch($result)) {
@@ -1605,7 +1605,7 @@ function voir_en_ligne ($type, $id, $statut=false, $image='racine-24.gif', $af =
 	switch ($type) {
 		case 'article':
 			if ($statut == "publie" AND $GLOBALS['meta']["post_dates"] == 'non') {
-				$n = sql_fetch(spip_query("SELECT id_article FROM spip_articles WHERE id_article=$id AND date<=NOW()"));
+				$n = sql_fetsel("id_article", "spip_articles", "id_article=$id AND date<=NOW()");
 				if (!$n) $statut = 'prop';
 			}
 			if ($statut == 'publie')
diff --git a/ecrire/inc/regler_moderation.php b/ecrire/inc/regler_moderation.php
index d4f7575a18..e97386d25c 100644
--- a/ecrire/inc/regler_moderation.php
+++ b/ecrire/inc/regler_moderation.php
@@ -36,7 +36,7 @@ function inc_regler_moderation_dist($id_article, $script, $args) {
 
 	$statut_forum = get_forums_publics($id_article);
 
-	$nb_forums = sql_fetch(spip_query("SELECT COUNT(*) AS count FROM spip_forum WHERE id_article=$id_article AND statut IN ('publie', 'off', 'prop')"));
+	$nb_forums = sql_fetsel("COUNT(*) AS count", "spip_forum", "id_article=$id_article AND statut IN ('publie', 'off', 'prop')");
 	$nb_forums = $nb_forums['count'];
 
 	if ($nb_forums) {
diff --git a/ecrire/inc/revisions.php b/ecrire/inc/revisions.php
index 42721d3b10..b27893fb45 100644
--- a/ecrire/inc/revisions.php
+++ b/ecrire/inc/revisions.php
@@ -133,7 +133,7 @@ function supprimer_fragments($id_article, $version_debut, $version_fin) {
 
 
 	// Fragments chevauchant l'ensemble de l'intervalle, s'ils existent
-	$result = spip_query("SELECT id_fragment, compress, fragment, version_min, version_max FROM spip_versions_fragments WHERE id_article=$id_article AND version_min<$version_debut AND version_max>$version_fin");
+	$result = sql_select("id_fragment, compress, fragment, version_min, version_max", "spip_versions_fragments", "id_article=$id_article AND version_min<$version_debut AND version_max>$version_fin");
 
 	while ($row = sql_fetch($result)) {
 		$id_fragment = $row['id_fragment'];
@@ -154,7 +154,7 @@ function supprimer_fragments($id_article, $version_debut, $version_fin) {
 	}
 
 	// Fragments chevauchant le debut de l'intervalle, s'ils existent
-	$result = spip_query("SELECT id_fragment, compress, fragment, version_min, version_max FROM spip_versions_fragments WHERE id_article=$id_article AND version_min<$version_debut AND version_max>=$version_debut AND version_max<=$version_fin");
+	$result = sql_select("id_fragment, compress, fragment, version_min, version_max", "spip_versions_fragments", "id_article=$id_article AND version_min<$version_debut AND version_max>=$version_debut AND version_max<=$version_fin");
 
 	$deb_fragment = array();
 	while ($row = sql_fetch($result)) {
@@ -176,7 +176,7 @@ function supprimer_fragments($id_article, $version_debut, $version_fin) {
 	}
 
 	// Fragments chevauchant la fin de l'intervalle, s'ils existent
-	$result = spip_query("SELECT id_fragment, compress, fragment, version_min, version_max FROM spip_versions_fragments WHERE id_article=$id_article AND version_max>$version_fin AND version_min>=$version_debut AND version_min<=$version_fin");
+	$result = sql_select("id_fragment, compress, fragment, version_min, version_max", "spip_versions_fragments", "id_article=$id_article AND version_max>$version_fin AND version_min>=$version_debut AND version_min<=$version_fin");
 
 	while ($row = sql_fetch($result)) {
 		$id_fragment = $row['id_fragment'];
@@ -241,7 +241,7 @@ function recuperer_fragments($id_article, $id_version) {
 
 	if ($id_version == 0) return array();
 
-	$result = spip_query("SELECT id_fragment, version_min, version_max, compress, fragment FROM spip_versions_fragments WHERE id_article=$id_article AND version_min<=$id_version AND version_max>=$id_version");
+	$result = sql_select("id_fragment, version_min, version_max, compress, fragment", "spip_versions_fragments", "id_article=$id_article AND version_min<=$id_version AND version_max>=$id_version");
 
 	while ($row = sql_fetch($result)) {
 		$id_fragment = $row['id_fragment'];
@@ -364,7 +364,7 @@ function apparier_paras($src, $dest, $flou = true) {
 // http://doc.spip.org/@recuperer_version
 function recuperer_version($id_article, $id_version) {
 
-	$row = sql_fetch(spip_query("SELECT champs FROM spip_versions WHERE id_article=$id_article AND id_version=$id_version"));
+	$row = sql_fetsel("champs", "spip_versions", "id_article=$id_article AND id_version=$id_version");
 	if (!$row OR !is_array($champs = unserialize($row['champs'])))
 		return array();
 	else return reconstuire_version($champs,
diff --git a/ecrire/inc/vieilles_defs.php b/ecrire/inc/vieilles_defs.php
index f853334474..3715ece112 100644
--- a/ecrire/inc/vieilles_defs.php
+++ b/ecrire/inc/vieilles_defs.php
@@ -297,7 +297,7 @@ spip_log('auth_rubrique() '.$GLOBALS['REQUEST_URI'].' - '.$_SERVER['SCRIPT_NAME'
 
 	if ($statut != '0minirezo') return $statut;
 
-	$result = spip_query("SELECT id_rubrique FROM spip_auteurs_rubriques WHERE id_auteur=$id_auteur AND id_rubrique!='0'");
+	$result = sql_select("id_rubrique", "spip_auteurs_rubriques", "id_auteur=$id_auteur AND id_rubrique!='0'");
 	if (!sql_count($result)) {
 		return 0;
 	}
-- 
GitLab