Forum CMS Made Simple FR
Probleme d'accès à une base de donnée mysql depuis un UDT. - Version imprimable

+- Forum CMS Made Simple FR (https://forum.cmsmadesimple.fr)
+-- Forum : Général (https://forum.cmsmadesimple.fr/forum-3.html)
+--- Forum : Général (https://forum.cmsmadesimple.fr/forum-10.html)
+--- Sujet : Probleme d'accès à une base de donnée mysql depuis un UDT. (/thread-2299.html)



Probleme d'accès à une base de donnée mysql depuis un UDT. - jfr - 18/10/2012

Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: !1.10.x
#~ Url du site :
#~ Hébergeur / Soft : debian dans une virtualbox sur mac os
#~ Informations Système :
#~ cmsms 1.10.2
#~ php 5.3.3
#~ mysql 5.1.63
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~

Bonjour à tous.

J'évalue la possibilité d'utiliser cmsms pour réaliser un site qui doit accéder à une base de données mysql (autre que celle de cmsms). Le code de l'UDT qui accède à la base est le suivant:

============
global $gCms;
$connex =& ADONewConnection('mysql');
$connex->PConnect('localhost', 'utilisateur', 'password', 'mabase');

$result = $connex->Execute('SELECT * FROM matable where nom="machin"');
while ($row = $result->FetchRow()) {
$nom = $row['nom'];
$prenom = $row['prenom'];
$mail = $row['mail'];
echo '<br>'.$nom.' '.$prenom.' '.$mail.'<br>';
}
$connex->Close();

==============

La requête retourne le résultat attendu si j'utilise la version complète de adodb:

$config['use_adodb_lite'] = false;

Comme cette option n'a plus l'air d'être supportée, j'ai testé avec l'option adodb_lite et je n'ai pas de retour de la base. J'ai testé également avec la 11.2 sans succès. D'après la doc de adodb_lite, la fonction FetchRow est supportée. J'avoue que j'ai du mal à comprendre ce que j'ai pu faire comme erreur. Je suppose que mon code est correct puisqu'il fonctionne avec l'option adodb "full".
Merci pour votre aide.
JF


Probleme d'accès à une base de donnée mysql depuis un UDT. - bess - 18/10/2012

test plutôt ceci

Citation : $connex= &ADONewConnection('mysql','pear:date:extend');
$connex->Connect("$dbhost", "$dbuname", "$dbpass", "$dbname");



Probleme d'accès à une base de donnée mysql depuis un UDT. - jce76350 - 18/10/2012

Cmsms n'utlise pas pear
de plus en 1.11.x c'est adodb (qui n'est pas à jour Wink )qui est utilisée (et seule supportée 1.11.x )

Nota adodb_lite n'a rien a voir avec adodb même si les bases sont les mêmes
ADOdb Lite is a separate PHP project done by a 3rd party to cut down the ADOdb library to use a smaller footprint.


Probleme d'accès à une base de donnée mysql depuis un UDT. - jfr - 18/10/2012

Merci. J'ai maintenant le résultat de la requête qui s'affiche, par contre ma page est toujours "en vrac" comme si cmsms ne trouvait pas ma CSS. Faut-il explicitement faire une reconnexion à la base cmsms?
Ou sont documentées les options que tu m'as indiquées dans ADONewConnection?

JF


Probleme d'accès à une base de donnée mysql depuis un UDT. - jfr - 18/10/2012

@ jce76350

Pourtant dans la distribution 1.11.2 c'est bien la librairie adodb_lite que l'on trouve dans le répertoire lib.
JF


Probleme d'accès à une base de donnée mysql depuis un UDT. - bess - 19/10/2012

bizarre ce que tu dit Jce, c'est le code que j'avais trouvé dans les entrailles de Cmsms il me semble afin de faire justement une UDT qui me permettais de taper sur une base annexe ...

bizarre bizarre ...


Probleme d'accès à une base de donnée mysql depuis un UDT. - Jean le Chauve - 19/10/2012

Je vois que tu vas afficher des mails ; tu as la possibilité de les crypter en utilisant ceci : http://www.cmsmadesimple.fr/forum/viewtopic.php?pid=8486#p8486
ou ce plugin : http://www.cmsmadesimple.fr/forum/viewtopic.php?id=4426


Probleme d'accès à une base de donnée mysql depuis un UDT. - jce76350 - 19/10/2012

Citation :Pourtant dans la distribution 1.11.2 c'est bien la librairie adodb_lite que l'on trouve dans le répertoire lib.
Normalement il doit y avoir les 2 et c'est bien le cas dans ma "Version complète 1.11-8212-Fr"
Comme c'est le cas sur le SVN, maintenant si sur les versions officielles c'est loupé Wink faut poser la question a Robert C

Citation :bizarre ce que tu dit Jce, c'est le code que j'avais trouvé dans les entrailles de Cmsms
ben non en local et sur mes sites je n'ai pas Pear (Beuk)

Ajout
V 1.10 - Date: samedi 5 novembre 2011 20:36:49 Révision: 7518
Commentaire:
Remove the $config['use_adodb_lite'] config option, and the $USE_OLD_ADODB global.


Probleme d'accès à une base de donnée mysql depuis un UDT. - jce76350 - 19/10/2012

Citation :Je vois que tu vas afficher des mails ; tu as la possibilité de les crypter en utilisant ceci : http://www.cmsmadesimple.fr/forum/viewt … 8486#p8486
ou ce plugin : http://www.cmsmadesimple.fr/forum/viewtopic.php?id=4426

@ Jean j'ai mis des liens sur page "Plugins et Modules" pour information


Probleme d'accès à une base de donnée mysql depuis un UDT. - Jean le Chauve - 19/10/2012

Oui, je l'avais déjà vu, merci Smile


Probleme d'accès à une base de donnée mysql depuis un UDT. - jfr - 19/10/2012

Un petit point de la situation:

- sur les distributions officielles full et english, il n'existe que la librairie adodb_lite. J'ai trouvé ce message de R. Campbell en clôture d'un rapport de bug:

++++++++++

Date: 2012-04-13 10:47
Posted By: Robert Campbell (calguy1000)

CMSMS 1.11 will now not support the full adodb. the use_adodb_lite config
option is removed.

+++++++++++

( http : //dev.cmsmadesimple.org/bug/view/5817 )

- en explorant le source de cmsms j'ai trouvé ce commentaire dans lib/adodb.functions.php:

"// @TODO: Remove dependence on PEAR for error handling "



Il y existe dans la distrib un fichier lib/adodb_lite/generic_modules/pear_module.inc. Il reste donc des traces de pear.

- le code conseillé par bess fonctionne correctement dans mon cas, mais en fin d'udt, il faut se reconnecter à la base cmsms avec la fonction:

adodb_connect() définie dans lib/adodb.functions.php

- il ne me reste plus qu'à régler un petit problème d'affichage des caractères accentués qui ne se produisait pas avec adodb full :mad:


@ jean: merci pour le lien. Pour le moment ce n'est qu'un exemple de test.


Merci à tous ceux qui m'ont répondu.
JF


Probleme d'accès à une base de donnée mysql depuis un UDT. - jissey - 19/10/2012

et pourquoi ne pas utiliser les function MySQL ou Mysqli de base?
C'est plus économique qu'une librairie et on fait ce qu'on veut, non?


Probleme d'accès à une base de donnée mysql depuis un UDT. - Jean le Chauve - 19/10/2012

Ou tout simplement importer la bd externe dans celle du cms.


Probleme d'accès à une base de donnée mysql depuis un UDT. - jfr - 19/10/2012

@jissey: parce j'ai déjà utilisé adodb dans une autre appli et je trouve que ses fonctionnalités de récupération des données simplifient l'écriture du code. Mais je me suis déjà posé la question.

@Jean: parce que cette base est utilisée par une autre appli qui vient y écrire des données. Mais là encore c'est une solution que je n'exclus pas complètement, un import quotidien de la base externe vers la base cmsms pourrait suffire.
Je n'ai pas encore regardé de près la doc concernant cette possibilité: les mises à jour de cmsms vont-elles conserver les modifs que j'aurai apportées à la base?

JF


Probleme d'accès à une base de donnée mysql depuis un UDT. - Jean le Chauve - 26/11/2012

Pour synchroniser tes bd : http://fr.wikipedia.org/wiki/Extract_Transform_Load#Freeware
et l'outil open source : http://fr.wikipedia.org/wiki/Talend