Thread Aus einem String ein ' entfernen (15 answers)
Opened by jojod at 2006-11-24 11:51

jojod
 2006-11-24 13:07
#71961 #71961
User since
2006-11-24
8 Artikel
BenutzerIn
[default_avatar]
Hey...

thx für die sehr schnelle Antwort... Habs natürlich gleich ausprobiert...
Hat leider nicht so funktioniert wie es sollte; Deswegen mehr informationen über das Script:

Code: (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
62
63
64
65
66
67
68
69
70
71
# Knoten
       if (($_[0]==0) || ($_[0]==1)) {
               %hKnoten = ();                  # Hash leeren

               # Tabelle Knoten abfragen
               $sql = "SELECT Knoten.KID, Knoten.Name from Knoten;";
               $sth = $dbh->prepare($sql); Fehler("Fehler Hash Knoten: $DBI::errstr", 0) if $DBI::err; # SQL-Befehl zur Datenbank schicken
               $sth->execute(); Fehler("Fehler Hash Knoten: $DBI::errstr", 0) if $DBI::err;            # SQL-Befehl ausführen

               # Ergebnis abholen und in Datei ausgeben
               while (@fields = $sth->fetchrow_array()) {
                       # Hash erstellen
                       $hKnoten{"$fields[1]"}=$fields[0];
               }

               $sth->finish();
       }

       # Priority
       if (($_[0]==0) || ($_[0]==2)) {
               %hPriority = ();                        # Hash leeren

               # Tabelle Priority abfragen
               $sql = "SELECT Priority.PID, Priority.Priority from Priority;";
               $sth = $dbh->prepare($sql); Fehler("Fehler Hash Priority: $DBI::errstr", 0) if $DBI::err;       # SQL-Befehl zur Datenbank schicken
               $sth->execute(); Fehler("Fehler Hash Priority: $DBI::errstr", 0) if $DBI::err;          # SQL-Befehl ausführen

               # Ergebnis abholen und in Datei ausgeben
               while (@fields = $sth->fetchrow_array()) {
                       # Hash erstellen
                       $hPriority{"$fields[1]"}=$fields[0];
               }

               $sth->finish();
       }

       # Fehler
       if (($_[0]==0) || ($_[0]==3)) {
               %hFehler = ();                  # Hash leeren

               # Tabelle Fehler abfragen
               $sql = "SELECT Fehler.FID, Fehler.Fehler from Fehler;";
               $sth = $dbh->prepare($sql); Fehler("Fehler Hash Fehler: $DBI::errstr", 0) if $DBI::err; # SQL-Befehl zur Datenbank schicken
               $sth->execute(); Fehler("Fehler Hash Fehler: $DBI::errstr", 0) if $DBI::err;            # SQL-Befehl ausführen

               # Ergebnis abholen und in Datei ausgeben
               while (@fields = $sth->fetchrow_array()) {
                       # Hash erstellen
                       $hFehler{"$fields[1]"}=$fields[0];
               }

               $sth->finish();
       }

       # Karten
       if (($_[0]==0) || ($_[0]==4)) {
               %hKarten = ();                  # Hash leeren

               # Tabelle Karten abfragen
               $sql = "SELECT Karten.KTyp, Karten.Typ from Karten;";
               $sth = $dbh->prepare($sql); Fehler("Fehler Hash Karten: $DBI::errstr", 0) if $DBI::err; # SQL-Befehl zur Datenbank schicken
               $sth->execute(); Fehler("Fehler Hash Karten: $DBI::errstr", 0) if $DBI::err;            # SQL-Befehl ausführen

               # Ergebnis abholen und in Datei ausgeben
               while (@fields = $sth->fetchrow_array()) {
                       # Hash erstellen
                       $hKarten{"$fields[1]"}=$fields[0];
               }

               $sth->finish();
}

Diese Funktionen sind die Hauptfunktionen für die anderen Teilfunktionen(so denk ich zumindest das es funktioniert..):
Code: (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
sub Knoten_eintragen {
       print "Neuer Knoten $_[0] \n" if defined $opt_v;
       $dbh->do("insert into Knoten(Name, TID, new) values ('" . $_[0] . "', 0, 1);"); Fehler("Fehler Neuer Knoten: $DBI::errstr", 0) if $DBI::err;
}

sub Priority_eintragen {
       print "Neue Priority $_[0] \n" if defined $opt_v;
       $dbh->do("insert into Priority(Priority) values ('" . $_[0] . "');"); Fehler("Fehler Neue Priorität: $DBI::errstr", 0) if $DBI::err;
}

sub Fehler_eintragen {
     print "Neuer Fehler $_[0] \n" if defined $opt_v;
     $dbh->do("insert into Fehler(Fehler) values (?);", undef, $_[0]); Fehler("Fehler Neuer Fehler: $DBI::errstr", 0) if $DBI::err;
}

#sub Fehler_eintragen {
#        print "Neuer Fehler $_[0] \n" if defined $opt_v;
#        $dbh->do("insert into Fehler(Fehler) values ('" . $_[0] . "');"); Fehler("Fehler Neuer Fehler: $DBI::errstr", 0) if $DBI::err;
#}

sub Karte_eintragen {
       print "Neuer Kartentyp $_[0] \n" if defined $opt_v;
       $dbh->do("insert into Karten(Typ) values ('" . $_[0] . "');"); Fehler("Fehler Neuer Kartentyp: $DBI::errstr", 0) if $DBI::err;
}

sub Datum_eintragen {
       print "Neues Datum $_[0] \n" if defined $opt_v;
       $dbh->do("insert into Datum(Datum) values ('" . $_[0] . "');"); Fehler("Fehler Neues Datum: $DBI::errstr", 0) if $DBI::err;
}

wenn ich den original-code nehme(sprich das auskommentierte benutze) bekomme ich so eine Fehlermeldung:
Code: (dl )
1
2
Neuer Fehler Can't find stats collector
DBD::mysql::db do 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 't find stats collector')' at line 1 at /database/scripts/Alarme/Alarme_Einlesen_lab.perl line 435.

/database/scripts/Alarme/Alarme_Einlesen_lab.perl line 435 ist folgende:
Code: (dl )
$dbh->do("insert into Fehler(Fehler) values ('" . $_[0] . "');"); Fehler("Fehler Neuer Fehler: $DBI::errstr", 0) if $DBI::err;


Wenn ich deine Lösung einfüge kommt folgende Fehlermeldung:
Code: (dl )
1
2
3
Neue Priority Slot Sync Loss
DBD::mysql::db do failed: Duplicate entry '255' for key 1 at /database/scripts/Alarme/Alarme_Einlesen_lab.perl line 430.
Fehler Neue Priorität: Duplicate entry '255' for key 1

/database/scripts/Alarme/Alarme_Einlesen_lab.perl line 430 ist folgende:
Code: (dl )
$dbh->do("insert into Priority(Priority) values ('" . $_[0] . "');"); Fehler("Fehler Neue Priorität: $DBI::errstr", 0) if $DBI::err;


war das verständlich und habt ihr ne idee warum des net geht, bzw. was man sonst noch machen kann??

jojo

View full thread Aus einem String ein ' entfernen