PDA

Visualizza la versione completa : Perl e MySQL


+andred+
18-11-2008, 16:31
Ciao a tutti.. ho un grossissimo problema da una settimana e non so proprio come risolverlo
questo sorgente:
#! /usr/bin/perl

use lib '/sw/lib/perl5/5.8.6/darwin-thread-multi-2level';
use DBI;
$username = '';$password = 'andrea';$database = 'andrea';$hostname = 'localhost';
$dbh = DBI->connect("dbi:mysql:database=$database;" .
"host=$hostname;port=3306", $username, $password);

$SQL= "create table user(ID integer primary key " .
"auto_increment, username text not null," .
" password text not null, email text not null)";

$CreateTable = $dbh->do($SQL);

print "Content-type:text/html\n\n\n";
if($CreateTable){
print "Success";
}
else{
print "Failure
$DBI::errstr";
}
e quando lo faccio girare mi da questo messaggio di errore
install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains: /sw/lib/perl5/5.8.6/darwin-thread-multi-2level /sw/lib/perl5/darwin-thread-multi-2level /sw/lib/perl5 /sw/lib/perl5/darwin /System/Library/Perl/5.8.8/darwin-thread-multi-2level /System/Library/Perl/5.8.8 /Library/Perl/5.8.8/darwin-thread-multi-2level /Library/Perl/5.8.8 /Library/Perl /Network/Library/Perl/5.8.8/darwin-thread-multi-2level /Network/Library/Perl/5.8.8 /Network/Library/Perl /System/Library/Perl/Extras/5.8.8/darwin-thread-multi-2level /System/Library/Perl/Extras/5.8.8 /Library/Perl/5.8.6 /Library/Perl/5.8.1 .) at (eval 3) line 3.
Perhaps the DBD::mysql perl module hasn't been fully installed,
or perhaps the capitalisation of 'mysql' isn't right.
Available drivers: DBM, ExampleP, File, Gofer, Pg, Proxy, SQLite, Sponge.
at ./esempio2.pl line 6

ho già provato ad installare di tutto (DBI-1.607, DBD-mysql-4.010 e questo mi da problemi ad installarlo) ma non mi funziona... qualcuno ha suggerimenti? io ho un Mac con Leopard come sistema operativo.... NON SO PIù DOVE SBATTERE LA TESTA
GRAZIE!!!!

MARTEDI
19-11-2008, 08:05
il tuo problema sta proprio nel modulo DBD-mysql. Se non riesci ad installare quello, con quel codice, non riuscirai a farlo funzionare.
Come alternativa però potresti usare gli ODBC. Generi un ODBC sul database e provi ad installare il modulo DBD-ODBC

+andred+
19-11-2008, 09:51
grazie mille per il consiglio...
non so cosa siano gli ODBC... potresti indicarmi un sito dove ne parlano e riesco a farmi un'idea per provarci?
ti ringrazio

MARTEDI
19-11-2008, 14:37
http://it.wikipedia.org/wiki/ODBC

quando installi sul tuo computer il database MySql (o altri), vengono create delle librerie che consentono l'interfacciamento tramite gli "ODBC".
Vado a memoria poichè io normalmente lavoro su windows, quindi fatico ad essere preciso. Comunque, per il Mac:

- avvii ODBC data source administrator.
- l'utilità ODBC Administrator è disponibile con Mac OS X (nella cartella Applicazioni/Utilità).
- fai clic sulla scheda DSN di sistema
- dalla lista di origini dei dati verifichi la presenza del driver MySql (se manca lo puoi scaricare dal sito di MySql, poi lo aggiungi con "aggiungi driver")
- crei un nuovo accesso e imposti il nome del database di riferimento

il modulo per accedere con perl agli ODBC è DBD::ODBC che, se ti manca, puoi scaricare dalla cpan (http://search.cpan.org/~mjevans/DBD-ODBC-1.17/ODBC.pm)

L'ODBC è comodo poichè la puoi usare per qualsiasi tipo di database

shishii
22-11-2008, 21:36
che procedura usi per installare DBD?

in genere la migliore è data dal sistema CPAN. Da console:

> perl -MCPAN -eshell

ti si apre un prompt di cpan e dopo l'inizializzazione digiti:

> install DBD::Mysql

+andred+
23-11-2008, 11:20
grazie mille per i consigli...
ci sono riuscito
con cpan!!!!! :)

Loading