Gå til innhold

Anbefalte innlegg

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
Videoannonse
Annonse

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

[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 av franksun
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...