Perl mySQL - Probleme bei INSERT mit STRING
Hallo zusammen,
ich lese drei Informationen aus einer Textdatei aus und möchte diese in eine mySQL Datenbank speichern.
Ein Wert ist ein Timestamp im Format YY-MM-DD HH:MM:SS
Diesen Wert habe ich in $arrInfo[$i][4] gespeichert. $i ist die Laufvariable.
my $sql3 = 'INSERT INTO temp (Time,LR,Temp) VALUES ('.$arrInfo[$i][4].','.$LR.','.$arrInfo[$i][3].')';
Alles funktioniert bis auf den Timestamp.
Wie kann ich explizit sagen, dass es sich bei $arrInfo[$i][4] um einen String handelt?
Anstatt der Variable habe ich mal nur 2010-05-01 eingegeben und dann hat er natürlch
den Wert ausgerechnet
Ich glaube, ich sehe den Wald vor lauter Bäumen nicht mehr.
Bin für jeden Tip dankbar.
Gruß
Libor
ich lese drei Informationen aus einer Textdatei aus und möchte diese in eine mySQL Datenbank speichern.
Ein Wert ist ein Timestamp im Format YY-MM-DD HH:MM:SS
Diesen Wert habe ich in $arrInfo[$i][4] gespeichert. $i ist die Laufvariable.
my $sql3 = 'INSERT INTO temp (Time,LR,Temp) VALUES ('.$arrInfo[$i][4].','.$LR.','.$arrInfo[$i][3].')';
Alles funktioniert bis auf den Timestamp.
Wie kann ich explizit sagen, dass es sich bei $arrInfo[$i][4] um einen String handelt?
Anstatt der Variable habe ich mal nur 2010-05-01 eingegeben und dann hat er natürlch
den Wert ausgerechnet
Ich glaube, ich sehe den Wald vor lauter Bäumen nicht mehr.
Bin für jeden Tip dankbar.
Gruß
Libor
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 164708
Url: https://administrator.de/contentid/164708
Ausgedruckt am: 24.11.2024 um 06:11 Uhr
3 Kommentare
Neuester Kommentar
my $sql3 = 'INSERT INTO temp (Time,LR,Temp) VALUES ('.$arrInfo[$i][4].','.$LR.','.$arrInfo[$i][3].')';
Und wieder eine SQL-Injection-Lücke...
Auch du darfst dich jetzt erstmal mit diesem Artikel befassen: http://de.wikipedia.org/wiki/SQL-Injection (das war keine Bitte!)
um einen String handelt?
Indem du Anführungszeichen setzt.
Was du schreibst wird ausgewertet zu:
INSERT INTO temp (Time,LR,Temp) VALUES(__wert1__,__wert2__,__wert3__)
Wenn es ein String ist muss es aber ausgewertet werden zu:INSERT INTO temp (Time,LR,Temp) VALUES("__wert1__",__wert2__,__wert3__)
Bitte nicht einfach nur Anführungszeichen benutzen, sondern Platzhalter. Ansonsten ist das immer noch eine SQL-Injection-Lücke. Mehr Informationen zu Platzhaltern sind unter http://wiki.perl-community.de/Wissensbasis/DbiPlatzhalter zu finden.