webForumDet fria alternativet

DBI till Mysql

6 svar · 193 visningar · startad av lapiste

lapisteMedlem sedan okt. 200113 inlägg
#1

Hejsan

Jag har installerat apache, perl och mysql och tänkte nu försöka koppla ihop sidan med databasen!

Jag har tankat hem DBI-drivrutiner på mysql´s sida, men zip-filen består av en massa mappar och filer. Någon som vet var jag ska lägga alltihop när jag zippat filen?

HansenMedlem sedan aug. 2000383 inlägg
#2

Om du använder ActiveStates distribution så följer det med ett verktyg som heter ppm (Perl Package Management). Använ det för att lägga till och tabort moduler.

Ta upp en prompt och skriv ppm.

För mer info kolla i den medföljande manualen eller perldoc ppm.

------------------
Hansen
c.h@ngmedia.com

lapisteMedlem sedan okt. 200113 inlägg
#3

hmm.. jag skrev use DBI;

men när jag kör skiten i dos så får jag det här meddelandet.. jag har även kört ppm och kört install på dbi, apachemysql... ska det vara så här krångligt med databaskopplingar....

C:\Program Files\Apache Group\Apache\cgi-bin>perl -w login.pl
Unquoted string "user" may clash with future reserved word at login.pl line 15.
Unquoted string "pwd" may clash with future reserved word at login.pl line 16.
Name "main::crap" used only once: possible typo at login.pl line 28.
Name "main::userid" used only once: possible typo at login.pl line 28.
Content-type: text/html

install_driver(mysql) failed: Can't locate DBD/mysql.pm in @INC (@INC contains: C:/Perl/lib C:/Perl/
site/lib .) at (eval 4) line 3.
Perhaps the DBD::mysql perl module hasn't been fully installed,
or perhaps the capitalisation of 'mysql' isn't right.
Available drivers: ADO, ExampleP, Multiplex, Proxy.
at login.pl line 22

HansenMedlem sedan aug. 2000383 inlägg
#4

Hej,

Perhaps the DBD::mysql perl module hasn't been fully installed,
or perhaps the capitalisation of 'mysql' isn't right.

Har du verifierat detta?

DBI och DBD::Mysql måste vara installerat.

ppm install DBI
ppm install DBD-Mysql

------------------
Hansen
c.h@ngmedia.com

lapisteMedlem sedan okt. 200113 inlägg
#5

så här ser filen ut (lite förkortat)

use DBI;
use DBD::mysql;

$databas = DBI->connect('DBI:mysql:lapiste','','',{autocommit => 1})
or print "mysql error: $DBI::errstr\n";
$tabell = $databas->prepare("select userid, user, pwd from users where user='$user' and pwd='$pwd'")
or print "mysql error: $DBI::errstr\n";

$crap = $tabell->bind_columns(undef, \$userid, \$user, \$pwd);

$tabell->execute;

if($tabell->fetch)
{
print "det funka";
}
else
{
print "funka inte";
}

och såhär ser felmeddelandet ut::

C:\Program Files\Apache Group\Apache\cgi-bin>perl -w login.pl
Unquoted string "user" may clash with future reserved word at login.pl line 16.
Unquoted string "pwd" may clash with future reserved word at login.pl line 17.
Name "main::crap" used only once: possible typo at login.pl line 28.
Name "main::userid" used only once: possible typo at login.pl line 28.
Content-type: text/html

Use of uninitialized value in concatenation (.) or string at login.pl line 25.
Use of uninitialized value in concatenation (.) or string at login.pl line 25.
Statement has no result columns to bind (perhaps you need to successfully call execute first) at log
in.pl line 28.

nåt som inte stämmer.. jag har kollat att paketen är installerade.. vilket de är..

daniel

HansenMedlem sedan aug. 2000383 inlägg
#6

Hej,

jag har kollat att paketen är installerade.. vilket de är.

Vid ditt föregående inlägg så var de inte installerade.

Jag rekommenderar dig att läsa igenom dokumentationen för DBI och DBD::Mysql.

perldoc DBI
perldoc DBD::Mysql

Använd strict och -w så blir det lättare att felsöka ditt script.

------------------
Hansen
c.h@ngmedia.com

[Redigerat av Hansen den 28 okt 2001]

lapisteMedlem sedan okt. 200113 inlägg
#7

efter mycket trixande så funkar det faktiskt nu.. det visade sig att det var min::

$user = param (user );

.. som inte fungerade.. kräver den också ett package..

tackar så mycket för hjälpen förresten

//daniel

Genererad på 383 ms · cache AV · v20260730165559-full.f96bc7eb