Schrift
[thread]3757[/thread]

insert funktioniert nicht

Leser: 3


<< >> 5 Einträge, 1 Seite
kale_1990
 2006-12-25 02:42
#35030 #35030
User since
2006-09-12
104 Artikel
BenutzerIn
[default_avatar]
hallo ich hab folgenden code in einem gästebuch:

Code: (dl )
1
2
3
4
$stmt = "insert into eintraege set name=$name, ort=$ort, mail=$mail, hp=$hp, datum=$datum, uhrzeit=$uhrzeit, eintrag=$eintrag";

$query = $dbh->prepare($stmt);
$query->execute;


aber es wird mir irgendwie nichts in die datenbank geschriebne?! hat jemand ne idee? der datenbankconnect ist ok!!
THERE'S MORE THAN ONE WAY TO DO IT - TMTOWTDI

EASY THINGS SHOULD BE EASY - HARD THINGS SHOULD BE POSSIBLE
Strat
 2006-12-25 03:14
#35031 #35031
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
frag vielleicht mal beim prepare und beim execute auf moegliche fehler ab, dann sagt's dir mal, wo du nach dem Fehler suchen musst, z.B.
Code: (dl )
1
2
3
4
5
my $sth = $dbh->prepare( $stmt )
or die "Error: couldn't prepare statement: " . $dbh->errstr . "\n$stmt\n";
$sth->execute
or die "Error: couldn't execute statement: " . $dbh->errstr . "\n$stmt\n";
$sth->finish;

wobei du ein insert auch kuerzer machen kannst, indem du anstelle des prepare/execute/finish ein do verwendest, z.B.
Code: (dl )
1
2
$dbh->do( $stmt )
or die "Error in sql: " . $dbh->errstr . "\n$stmt";


Als Lesestoff empfehle ich dir meine Homepage -> Perl -> Tips&Tricks -> Perl-Enhanced -> MySQL mit DBI (ist zwar nicht mehr ganz aktuell, weil Platzhalter fehlen, aber da siehst du zumindest, wie es grundsaetzlich funktioniert)
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/
MisterL
 2006-12-25 12:28
#35032 #35032
User since
2006-07-05
334 Artikel
BenutzerIn
[default_avatar]
Also bei neueren MySQL Versionen sieht eine konkrete INSERT Anweisung z.B. so aus:
Code: (dl )
my $sql = "INSERT INTO zieltabelle ( `id` , `currency` ) VALUES ( '7', 'Franc' )"; 

Parametrisieren muss man jetzt aber selbst ;-)
“Perl is the only language that looks the same before and after RSA encryption.”
kale_1990
 2006-12-25 14:18
#35033 #35033
User since
2006-09-12
104 Artikel
BenutzerIn
[default_avatar]
hallo, ich weiß jetz an was es lag....ich hab die variablen nicht in einfache 'hochkommas' gesetzt obwohl es charwerte sind...jetz funktioniert es!
danke aber für die antworten
THERE'S MORE THAN ONE WAY TO DO IT - TMTOWTDI

EASY THINGS SHOULD BE EASY - HARD THINGS SHOULD BE POSSIBLE
renee
 2006-12-25 19:19
#35034 #35034
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Deshalb solltest Du auch die ?-Notation von CPAN:DBI verwenden. Dann braucht man sich um so etwas keine Gedanken mehr machen - und es erhoeht die Sicherheit Deines Programms.

Code: (dl )
1
2
3
4
my $stmt = "insert into eintraege set name= ?, ort=?, mail=?, hp=?, datum=?, uhrzeit=?, eintrag=?";

my $query = $dbh->prepare($stmt) or die $dbh->errstr();
$query->execute($name,$ort,$mail,$hp,$datum,$uhrzeit,$eintrag) or die $dbh->errstr();


Benutzt Du Wiki:[tt]use strict;[/tt]?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
<< >> 5 Einträge, 1 Seite



View all threads created 2006-12-25 02:42.