SQL-Insert-Anweisung
juha
- sonstiges
0 Klaus Mock0 juha
0 Michael Schröpl
Hallo Zusammen
Diese Frage stellte ich bereits einmal, man sagte diese insert-Anweisung wäre untauglich in meinem Perl-Programm, doch wieso funktioniert es weiter unten im Programm?
Dieser Code funktioniert:
$db_command = "insert into ajbatch
(
adr_id,
ajdef_id,
ajbatch_datum,
ajbatch_zeit
)
values (
$schluss,
1,
now(),
'$time'
)";
$add = $dbh->do($db_command);
Warum funktioniert folgender nicht??
#Änderung in Datenbank eintragen
$db_command = "insert into ajsoll
(
ajsoll_id,
ajsoll_monat,
ajsoll_jahr,
ajsoll_tage,
ajsoll_stunden
)
values
(
1,
'$monatzaehler',
'$jahr',
NULL,
'@solleingabe[$monatzaehler]'
)";
$add = $dbh->do($db_command);
grüsse juha
Hallo,
$add = $dbh->do($db_command);
Naja, Glaskugel habe ich gerade keine zur Hand, Du offenbar auch nicht;-)
Aber vielleicht versuchst Du es einmal mit
$add = $dbh->do($db_command) or die "Fehler bei $dbcommand, ".$dbh->errstr;
$dbh->errstr enthält die Datenbankfehlermeldung, wenn etwas schief geht. Da jede Funktion, die Du gegen die Datenbank absetzt, auch schief gehen kann, solltest Du Dir angewöhnen, bei ANwendung dieser Funktionen auch zu prüfen, ob auch alles glatt ging, d.h. Rückgabewert der Funktion überprüfen, und falls dieser einen Fehler signalisiert, die Datenbankfehlermeldung zumindest in einen Logfile schreiben. Wodurch erkennbar ist, ob eine Funktion mit einem Fehler beendet wurde, steht in der Dokumentation von DBI und der DBD-Dokumentation der verwendeten Datenbank.
Außerdem funktioniert 'funktioniert nicht' nicht, da es nicht aussagekräftig genug ist. Bitte gewöhne Dir an, eine genauere Fehlerbeschreibung mitzugeben:
Was sollte es tun
Was tut es nicht
Was tut es anstelle des erwarteten Verhalten
Welche Meldungen gibt das Programm aus
Welche Meldungen stehen im Webserverlog, falls es in Verbindung mit einem Webserver benutz wird.
Grüße
Klaus
Hallö
Außerdem funktioniert 'funktioniert nicht' nicht, da es nicht aussagekräftig genug ist. Bitte gewöhne Dir an, eine genauere Fehlerbeschreibung mitzugeben:
Was sollte es tun
Was tut es nicht
Was tut es anstelle des erwarteten Verhalten
Welche Meldungen gibt das Programm aus
Welche Meldungen stehen im Webserverlog, falls es in Verbindung mit einem Webserver benutz wird.
Es funktioniert nicht in dem Sinn, dass das Programm einfach gar nichts macht, am Bildschirm wird nichts angezeigt, es gibt keine Fehlermeldung aus, und schreibt auch nichts in die Datenbank, nicht einmal irgendwelche willkürlichen Zeichen!
cu juha
Hi Juha,
Warum funktioniert folgender nicht??
#Änderung in Datenbank eintragen
$db_command = "insert into ajsoll
(
ajsoll_id,
ajsoll_monat,
ajsoll_jahr,
ajsoll_tage,
ajsoll_stunden
)
values
(
1,
'$monatzaehler',
'$jahr',
NULL,
'@solleingabe[$monatzaehler]'
)";
$add = $dbh->do($db_command);
Dafür kann es ungeheuer viele Möglichkeiten geben:
Warum wohl erlaubt Dir die mySQL-Schnittstelle den Zugriff auf die
entsprechende Fehlermeldung?
Meiner Meinung nach, weil Dir diese Information weiterhelfen wird ...
Viele Grüße
Michael