Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]12304[/thread]

Problem mit UPDATE Befehl für Firebird-Datenbank



<< >> 5 Einträge, 1 Seite
Lexy
 2008-08-06 14:47
#113149 #113149
User since
2008-07-21
8 Artikel
BenutzerIn
[default_avatar]
Ich habe ein Script das einen Update Befehl ausführt, es läuft durch und schmeißt auch keinen Fehler ändert aber keine Werte.

Script:
Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#!c:/Perl/bin/perl.exe -w

use strict;
use DBI;
use CGI qw/:standard/;
use CGI::Carp qw(fatalsToBrowser);


my $db ="F:/Eigene Dateien/Eigene Datenquellen/gasverbrauch.fdb";

my $input = new CGI;

my $knd_id = $input->param("knd_id");
my $status_temp = $input->param("status_temp");
my $Monat = $input->param("Monat");
my $Jahr = $input->param("Jahr");

my $dbh = connect_db($db);

my $q = "UPDATE VERBRAUCH SET TEMP_STATUS = '$status_temp'
WHERE (KUNDE_ID = $knd_id AND MONAT = $Monat AND JAHR = $Monat);";

do_query($q,$dbh);


disconnect_db($dbh);

# Verbindung zur Datenbank herstellen
sub connect_db {
my $db = $_[0];

# Verbindungsdaten
my $SQL_Driver = "InterBase";
my $SQL_Host="localhost";
my $SQL_User="SYSDBA";
my $SQL_Passw="masterkey";

my $dbh = DBI->connect("DBI:$SQL_Driver:$db", $SQL_User, $SQL_Passw, \%err_attr)or mess_out("Kann keine Verbindung zum MySQL-Server aufbauen");
return $dbh;
}

# Verbindung trennen
sub disconnect_db {
my $dbh = $_[0];
$dbh->disconnect;
return 1;
}

# Abfrage ohne Ergebnismenge
sub do_query {
my $query = $_[0];
my $dbh = $_[1];
my $res = $dbh->do($query)or mess_out("Kann Abfrage nicht ausfuehren");
return $res;
}

# Ausgabe von Fehlermeldungen
sub mess_out {
my $mess = $_[0];
die "$mess\nError $DBI::err ($DBI::errstr)\n";
}
nepos
 2008-08-06 15:27
#113150 #113150
User since
2005-08-17
1420 Artikel
BenutzerIn
[Homepage] [default_avatar]
Kann es sein, dass du hier noch die Transaktion comitten musst?
pq
 2008-08-06 17:38
#113160 #113160
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Lexy+2008-08-06 12:47:42--
Code (perl): (dl )
1
2
3
4
5
6
7
my $knd_id = $input->param("knd_id");
my $status_temp = $input->param("status_temp");
my $Monat = $input->param("Monat");
my $Jahr = $input->param("Jahr");

my $q = "UPDATE VERBRAUCH SET TEMP_STATUS = '$status_temp'
WHERE (KUNDE_ID = $knd_id AND MONAT = $Monat AND JAHR = $Monat);";

hilfe!
da kann ich ja deine datenbank kaputtmachen, wenn ich nur die richtigen werte im browser
eingebe!
hast du schonmal daran gedacht, dass man in monat statt "01" einfach "0 or is not null"
eingeben kann?
bitte unbedingt Wiki:DbiPlatzhalter lesen.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Lexy
 2008-08-06 18:27
#113164 #113164
User since
2008-07-21
8 Artikel
BenutzerIn
[default_avatar]
Jup danke für den Tipp mit den Platzhaltern :-)
ja hatte ich schon dran gedacht und hab im Formular wo die daten eingegeben werden net select box gemacht damit ich nur die werte bekomme die ich auch haben will.
Hab jetzt aber auch auf die Platzhalter umgestellt und jetzt funktioniert auch das Update.

Nochmals vielen Dank @ pq
pq
 2008-08-06 18:51
#113167 #113167
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Lexy+2008-08-06 16:27:15--
ja hatte ich schon dran gedacht und hab im Formular wo die daten eingegeben werden net select

nur dass dir das nix bringt, denn sowas lässt sich leicht umgehen. aber wenn du ja jetzt platzhalter
benutzt, ist ja gut =)
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
<< >> 5 Einträge, 1 Seite



View all threads created 2008-08-06 14:47.