Bonjour,
Jutilise le moteur SPIP pour la gestion dun site qui nécessite une gestion
de sessions (db_eSessions) et fait des accès sur une BDD mysql via une
couche dabstraction ADODB.
Et SPIP ma bien lair de se mélanger les pinceaux dès lors quil doit se
connecter à 2 ou 3 BDD
Le log mysql du pb ets le suivant :
040805 15:26:40 15 Connect user@localhost on
15 Init DB spip_test
15 Query SELECT COUNT(*) FROM spip_meta
15 Query SELECT * FROM spip_meta
15 Query SELECT
GET_LOCK('spip_test:spip:CACHE/0/mip-fo_login.7690.5259b3_tmp', 1)
15 Query SELECT
RELEASE_LOCK('spip_test:spip:CACHE/0/mip-fo_login.7690.5259b3_tmp')
16 Connect user@localhost on ma_bdd
16 Init DB ma_bdd
16 Query SELECT blabla from TABLE where
n_identifiant='Identifiant'
16 Query SELECT
GET_LOCK('spip_test:spip:CACHE/a/header-id_article%3D.7690.b55473_tmp', 1)
16 Query SELECT
RELEASE_LOCK('spip_test:spip:CACHE/a/header-id_article%3D.7690.b55473_tmp')
16 Query SELECT
GET_LOCK('spip_test:spip:CACHE/b/top.7690.28354b_tmp', 1)
16 Query SELECT
RELEASE_LOCK('spip_test:spip:CACHE/b/top.7690.28354b_tmp')
16 Query SELECT rubriques.* FROM spip_rubriques
AS rubriques WHERE rubriques.id_parent=0
16 Query SELECT
GET_LOCK('spip_test:spip:CACHE/5/menu_rech.7690.c60c44_tmp', 1)
16 Query SELECT
RELEASE_LOCK('spip_test:spip:CACHE/5/menu_rech.7690.c60c44_tmp')
16 Query SELECT
GET_LOCK('spip_test:spip:CACHE/0/module_recherche.7690.6f2e5e_tmp', 1)
16 Query SELECT
RELEASE_LOCK('spip_test:spip:CACHE/0/module_recherche.7690.6f2e5e_tmp')
16 Query SELECT
GET_LOCK('spip_test:spip:CACHE/2/footer.7690.51d164_tmp', 1)
16 Query SELECT
RELEASE_LOCK('spip_test:spip:CACHE/2/footer.7690.51d164_tmp')
16 Query SELECT lang FROM spip_auteurs WHERE
login='admin'
16 Query SELECT
GET_LOCK('spip_test:spip:archiver_stats', 0)
15 Quit
On a un Init DB sur spip_test qui gère les mécanismes de cache.
Puis un Init DB sur une autre BDD (ici en pconnect) afin dy faire mes
requêtes pour construire le contenu de la page.
Et quand SPIP plus tard, lors de la construction du menu cherche à faire son
SELECT rubriques.* FROM spip_rubriques AS rubriques WHERE
rubriques.id_parent=0, il le fait sur la BDD ma_bdd et conduit à un
magnifique :
Erreur MySQL
SELECT rubriques.* FROM spip_rubriques AS rubriques WHERE
rubriques.id_parent=0
Table 'ma_bdd.spip_rubriques' doesn't exist
Les handlers sont bien entendu différents ($spip_mysql_link et
$conn_ma_bdd).
Si jutilise connect au lieu de pconnect, en refermant le handler, jai le
même souci sauf que SPIP nest alors plus connecté à une base
Je ne sais pas si qqun a déjà eu ce pb, et je narrive pas à le debuguer
proprement
Est-ce un bug ? Ou est-ce que je passe à côté de qq chose :o/ ?
En attendant, pour pallier salement à ce pb, jai dû commenter dans le
fichier ecrire/inc_connect.php3 la ligne :
if (defined("_ECRIRE_INC_CONNECT")) return;
Et includer ce fichier inc_connect.php3 après mes requêtes à la base ma_bbb
Merci,
Antony