r14529 - in spip/ecrire: base req

Author: esj@rezo.net
Date: 2009-09-23 11:27:41 +0200 (mer, 23 sep 2009)
New Revision: 14529

Log:
Révision générale du traitement d'erreurs dans le serveur virtuel SQL, qui avait plusieurs défauts:

  * mauvaise distinction d'erreurs en provenance de différentes connexions à un même serveur SQL;
  * erreurs SQL non signalées dans certains cas;
  * imprécision des requêtes SQL erronées quant au préfixe des tables;
  * pré-supposés sur l'organisation des fichiers de log;
  * tests redondants {{{function_exists}}}, le serveur virtuel s'en chargeant déjà.

Dans cette nouvelle organisation:

     * les portages ne doivent plus rien écrire dans les fichiers de log, c'est une nouvelle fonction d'interface {{{spip_sql_erreur}}} qui s'en charge, en écrivant dans des fichiers différents en cas de connexions multiples à un même serveur;
     * les portages doivent écrire dans l'index {{{last}}} de leur tableau de connexion dédié la dernière requête exécutée, afin que le serveur virtuel puisse la retrouver;

     * la fonction {{{sql_serveur}}} ne doit plus être appelée en dehors du fichier {{{abstract_sql}}}, afin que celui-ci centralise la gestion des erreurs.

Il faudrait en profiter pour éliminer les faux messages d'erreur sur la table des meta à l'installation, qui sont dus à une manière assez brutale de vérifier l'existence de cette table (faudrait voir si {{{IF TABLE EXISTS}}} est disponible sur tous les portages), et reporter cette révision sur les autres portages que MySQL.

Modified:
   spip/ecrire/base/abstract_sql.php
   spip/ecrire/base/connect_sql.php
   spip/ecrire/req/mysql.php

Details: http://trac.rezo.net/trac/spip/changeset/14529