Probleme d'accès à une base de donnée mysql depuis un UDT.

Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
#1
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
Répondre
#1
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
Répondre
#2
test plutôt ceci

Citation : $connex= &ADONewConnection('mysql','pear:date:extend');
$connex->Connect("$dbhost", "$dbuname", "$dbpass", "$dbname");
Répondre
#2
test plutôt ceci

Citation : $connex= &ADONewConnection('mysql','pear:date:extend');
$connex->Connect("$dbhost", "$dbuname", "$dbpass", "$dbname");
Répondre
#3
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.
J-C Etiemble v 2.2.xx
Répondre
#3
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.
J-C Etiemble v 2.2.xx
Répondre
#4
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
Répondre
#4
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
Répondre
#5
@ 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
Répondre
#5
@ 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
Répondre
#6
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 ...
Répondre
#6
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 ...
Répondre
#7
Je vois que tu vas afficher des mails ; tu as la possibilité de les crypter en utilisant ceci : http://www.cmsmadesimple.fr/forum/viewto...8486#p8486
ou ce plugin : http://www.cmsmadesimple.fr/forum/viewtopic.php?id=4426
Répondre
#7
Je vois que tu vas afficher des mails ; tu as la possibilité de les crypter en utilisant ceci : http://www.cmsmadesimple.fr/forum/viewto...8486#p8486
ou ce plugin : http://www.cmsmadesimple.fr/forum/viewtopic.php?id=4426
Répondre
#8
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.
J-C Etiemble v 2.2.xx
Répondre
#8
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.
J-C Etiemble v 2.2.xx
Répondre
#9
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
J-C Etiemble v 2.2.xx
Répondre
#9
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
J-C Etiemble v 2.2.xx
Répondre
#10
Oui, je l'avais déjà vu, merci Smile
Répondre
#10
Oui, je l'avais déjà vu, merci Smile
Répondre
#11
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
Répondre
#11
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
Répondre
#12
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?
{SEO}
Inscrivez-vous à notre Newsletter sur le site (colonne de droite, en bas).
Vous appréciez CMSMS et l'aide qui vous est fournie ici, aidez-nous en participant au projet.
Formation CMS Made Simple | Création de site CMS Made Simple.

C'est en se plantant qu'on devient cultivé.
J'ai un string dans l'Array (Paris Hilton)
Répondre
#12
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?
{SEO}
Inscrivez-vous à notre Newsletter sur le site (colonne de droite, en bas).
Vous appréciez CMSMS et l'aide qui vous est fournie ici, aidez-nous en participant au projet.
Formation CMS Made Simple | Création de site CMS Made Simple.

C'est en se plantant qu'on devient cultivé.
J'ai un string dans l'Array (Paris Hilton)
Répondre
#13
Ou tout simplement importer la bd externe dans celle du cms.
Répondre
#13
Ou tout simplement importer la bd externe dans celle du cms.
Répondre
#14
@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
Répondre
#14
@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
Répondre
#15
Pour synchroniser tes bd : http://fr.wikipedia.org/wiki/Extract_Tra...d#Freeware
et l'outil open source : http://fr.wikipedia.org/wiki/Talend
Répondre
#15
Pour synchroniser tes bd : http://fr.wikipedia.org/wiki/Extract_Tra...d#Freeware
et l'outil open source : http://fr.wikipedia.org/wiki/Talend
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)