Toon posts:

[perl] connect string hulp

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een regel in embedded perl die een connectie maakt naar de database echter krijg ik een error zodra ik van de host, db, user, ww een variabele maak.
geinstalleerd zijn embedded perl, mod_perl etc.. Alles werkt echter niet met de variable in de string.

## hieronder de config file die hij uit moet lezen
open F,"<../data/config.config"; while(<F>) {$data=$_;$data =~ m/(.*?)\:(.*?)$/is;$cfg{$1}=$2;} close(F);

## hieronder de string
$dbh = Mysql->connect("mysql:mysql:database=$cfg{database};host=$cfg{host}",$cfg{database},$cfg{user},$cfg{pass});

Deze combi werkt echter niet. Zodra ik de variable uit de string verander in vaste waarden gaat het goed:
$dbh = Mysql->connect("localhost","database","user","password");

in de config staat:

user:user
pass:password
host:localhost
database:database
os:linux


Wie kan mij helpen?

  • SWfreak
  • Registratie: Juni 2001
  • Niet online
Hier was laatst ook een topic over. Probeer de search eens, misschien staat in dat oude topic genoeg info...

Verwijderd

Topicstarter
nope.. staat niks over

  • smoking2000
  • Registratie: September 2001
  • Laatst online: 23-08 05:15

smoking2000

DPC-Crew

dpkg-reconfigure reality

Mysql->connect($cfg{host},$cfg{database},$cfg{user},$cfg{pass});

Doet die het wel??

of doe een OR DIE met een errorstring...

[ Voor 39% gewijzigd door smoking2000 op 28-03-2003 15:01 ]

| [Folding@Home] Announce: Client monitor voor Linux (fci) | fci-1.8.4 | Fatal Error Group |


Verwijderd

Topicstarter
Sorry die doet het ook niet... ik blijf foutmelding krijgen. [11385]ERR: 24: Error in Perl code: Can't call method "prepare" on an undefined value at /usr/lib/perl5/site_perl/5.8.0/i686-linux/Mysql.pm line 166.

  • smoking2000
  • Registratie: September 2001
  • Laatst online: 23-08 05:15

smoking2000

DPC-Crew

dpkg-reconfigure reality

Misschien heel stom, maar weet je zeker dat de waardes in je hash kloppen met de waardes die de connect statement wil hebben?
Zo ja, wat krijg je als je uit je errorstring?

| [Folding@Home] Announce: Client monitor voor Linux (fci) | fci-1.8.4 | Fatal Error Group |


Verwijderd

Topicstarter
Ja dat is juist het gekke. Ik kan er ook geen error uitkrijgen. Enige waar hij om blijft zeuren is die Mysql.pm op line 166 en die is:sub query ($$) {
my($self, $statement) = @_;
my $dbh = $self->{'dbh'};
my $sth = $dbh->prepare($statement);
if (!$sth) {
$db_errstr = $dbh->errstr();
return undef;

Verwijderd

Welke database module gebruik je? Ik zie namelijk twee soorten doorelkaar heen. Gebruik je een DBD MySQL driver, of een module die direct de MySQL database zonder het DBI framework aanspreekt. In die eerste connectiestring zie ik namelijk een dsn, en in die tweede, die volgens jouw werkt, zie ik geen dsn...

Die waarden in je hash kloppen trouwens gewoon, althans bij mij werkt het. Al kan je ook de module Config::IniFiles gebruiken, kan je echte ini files inlezen ;)

Verwijderd

Topicstarter
sanks allemaal het werkt inmiddels.
Pagina: 1