problème de connexion à MySQL via DBI

problème de connexion à MySQL via DBI - Perl - Programmation

Marsh Posté le 25-04-2005 à 09:09:13    

Salut à tous je débute en perl  :cry: ,
 
ma machine (sous xp) fait office de serveur WEB et de serveur MYSQL (version 4.10) et les drivers MyODBC 3.51 sont installés sur ma machine, j'utilise
DBI pour me connecter à différentes base de données (access, mssql oracle...) sans aucun soucis  :wahoo: . Mais MySQL me pose problème  :pt1cable: , voiçi les Symptômes :
 
- le code ne péte pas mais les requêtes ne me retourne rien
- je pense que la connexion se fait  :??:    
 
voiçi mon code
 

Code :
  1. sub dsn
  2. {
  3. #return 'driver=SQL Server;Server=SERVER;database=basemssql;uid=system;pwd=azt;';
  4. #return 'driver=Oracle dans OraHome92;Server=SERVER;dbq=baseoracle;uid=system;pwd=azt;';
  5. return 'driver={MySQL ODBC 3.51 Driver};Server=pc1;dbq=base;uid=SYSTEM;pwd=azt;';
  6. }
  7. my $dsn=dsn;
  8. my $dbh = DBI->connect("dbi:ODBC:$dsn",{RaiseError => 1});


 
j'ai vu aussi que l'on peut utiliser la synthaxe suivante:
 

Code :
  1. my $dbh = DBI->connect("dbi:MYSQL:....


 
quelle est la différence ? avez vous une solution à mon soucis?
 
merci d'avance et bonne prog


Message édité par ZZZzzz le 25-04-2005 à 09:58:51
Reply

Marsh Posté le 25-04-2005 à 09:09:13   

Reply

Marsh Posté le 25-04-2005 à 09:48:48    

il manque un bout de ton code non?
$dsn il est initialisé ou?
 
à mon avis c'est plutot ca que tu veux ecrire:
my $dbh = DBI->connect("dbi:ODBC:".dsn(),{RaiseError => 1});

Reply

Marsh Posté le 25-04-2005 à 09:57:42    

Ha oui désolé j'ai corriger ca lol


Message édité par ZZZzzz le 25-04-2005 à 09:59:53
Reply

Marsh Posté le 25-04-2005 à 10:17:12    

J'ai effectué d'autre test, toujours le même problème :-(  
 
Avez vous une solution à mon soucis?  
 
Merci d'avance

Reply

Marsh Posté le 25-04-2005 à 10:51:15    

Il faut toujours tester qu'une connection s'est déroulé sans prob:
 
my $dbh = DBI->connect(...) or die $DBI::errstr;

Reply

Marsh Posté le 25-04-2005 à 13:53:12    

La ligne de commande suivante ne me retourne aucune erreurs
 

Code :
  1. my $dbh = DBI->connect("dbi:ODBC:$dsn",{RaiseError => 1});


 
même en la testant avec le  
 

Code :
  1. or die $DBI::errstr;


 
c'est aprés que le problème se pose,
lorsque que j'éxecuté des requêtes je n'ai pas d'erreurs et aucunes données en retour
 
Je ne sais pas d'où cela peut il provenir  :heink:  
 
Merci d'avance.

Reply

Marsh Posté le 25-04-2005 à 14:01:25    

alors rajoute des or die sur tes requetes

Reply

Marsh Posté le 25-04-2005 à 14:21:58    

pospos a écrit :

alors rajoute des or die sur tes requetes


 
J'ai ajouté les or die aux requetes que j'utilise, aucun message d'erreurs et aucunes données en retour.  :(    
 
Y a pas une config spécifique pour mysql sous perl ou truc dans se genre que j'aurais pu oublié?  

Reply

Marsh Posté le 25-04-2005 à 14:34:12    

aucune idée...
j'ai jamais utilisé ODBC (pourkoi tu utilise pas DBD::Mysql directement?)

Reply

Marsh Posté le 25-04-2005 à 15:03:54    

ha ben je vais essayé c'est quoi la synthaxe?

Reply

Marsh Posté le 25-04-2005 à 15:03:54   

Reply

Marsh Posté le 25-04-2005 à 16:25:12    

regarde la doc de DBD::Mysql : http://search.cpan.org/~rudy/DBD-mysql-2.9006/

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed