franksun Skrevet 7. mai 2005 Del Skrevet 7. mai 2005 Hei, jeg skulle ha henta en variabel og satt den i en mysql-spørring, her er pseaudo for å se hva jeg mener: eller prøve å mene.. eller. eller... print "Skriv inn fornavn : "; my $fornavn = <STDIN>; print "Skriv inn etternavn: "; my $etternavn = <STDIN>; ("INSERT INTO db (fornavn, etternavn) VALUES ('$fornavn', '$etternavn')") Lenke til kommentar
mysjkin Skrevet 8. mai 2005 Del Skrevet 8. mai 2005 Du må bruke dbi / dbd::mysql for dette: use DBI; use strict; my($username,$password)=("USER","PASS"); my $dbhandle=DBI->connect(dbi:mysql:dbname=<database>;$username;$password) my $inserthandle=$dbhandle->prepare('INSERT INTO db ((fornavn,etternavn) VALUES (?,?)'); print "Skriv inn fornavn : "; my $fornavn = <STDIN>; print "Skriv inn etternavn: "; my $etternavn = <STDIN>; $inserthandle->execute($fornavn,$etternavn); DBI->connect er langsom, så dersom du skal gjøre flere spørringer, gjør du bare en connect ført og så kjører flere spørringer fra den. Det er også mulig å bygge opp query-strengen med det du skal inserte ("INSERT INTO db (fornavn, etternavn) VALUES ('$fornavn', '$etternavn')") og så kjøre execute uten ekstra argumenter, men sikkerhetsmessig (og ytelsesmessig dersom du skal kjøre flere liknende spørringer) er bruk av prepare bedre. Her er det forøvrig heller ikke noe feilhåndtering, det må du også ha med Se forøvring dokumentasjonen for DBI og DBD::mysql. M. Lenke til kommentar
franksun Skrevet 11. mai 2005 Forfatter Del Skrevet 11. mai 2005 frank@picasso:~$ perl ka.plx syntax error at ka.plx line 4, near "dbi:" syntax error at ka.plx line 5, near "$password) " Execution of ka.plx aborted due to compilation errors. Lenke til kommentar
Torbjørn Skrevet 11. mai 2005 Del Skrevet 11. mai 2005 connect() skal ha en streng som argument Lenke til kommentar
franksun Skrevet 11. mai 2005 Forfatter Del Skrevet 11. mai 2005 (endret) [frank@paranoid kundesys]$ perl insert2.pl Skriv inn fornavn : per Skriv inn etternavn: persen DBD::mysql::st execute failed: You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '(fornavn,etternavn) VALUES ('per\n','persen\n')' at line 1 at insert2.pl line 20, <STDIN> line 2. code: #!/usr/bin/perl #insert2.plx use warnings; use strict; use DBI; my ($dbh, $rows); $dbh=DBI->connect('dbi:mysql:brukere;host=vikxiXxnXfjXord.org','frank','xxxxxu') || die "Couldnt open database: $DBI::errstr\n"; my $inserthandle=$dbh->prepare('INSERT INTO checkin ((fornavn,etternavn) VALUES (?,?)'); print "Skriv inn fornavn : "; my $fornavn = <STDIN>; print "Skriv inn etternavn: "; my $etternavn = <STDIN>; $inserthandle->execute($fornavn,$etternavn); Endret 11. mai 2005 av franksun Lenke til kommentar
franksun Skrevet 12. mai 2005 Forfatter Del Skrevet 12. mai 2005 Ble tråden sletteT? vel, uansett, jeg fant fram til problemet, eller jeg fikk hjelp til å finne det en for mye parantes på 'INSERT INTO checkin ((fornavn,etternavn) VALUES (?,?)'); Lenke til kommentar
mysjkin Skrevet 13. mai 2005 Del Skrevet 13. mai 2005 Jaja, sånn går det når man bare slenger inn noe kode uten å skjekke det skikkelig.... Du lærte litt debugging ihvertfall... ;-) M Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå