Thread für in der MySQL-Datenbank ... (11 answers)
Opened by rtp_de at 2013-11-26 15:48

Raubtier
 2013-11-27 00:25
#172239 #172239
User since
2012-05-04
1054 Artikel
BenutzerIn

user image
2013-11-26T16:48:22 rtp_de
Hallo topeg,

hier nun das gewünschte Codebeispiel. (Es gibt sicherlich elegantere Wege, das zu tun, ich weiss.)

Code (perl): (dl )
1
2
3
4
5
...
# Irgendetwas aus dem RSS extrahieren und das in die Datenbank schreiben
my $rss = XML::RSS->new();
$rss->parse($ticker);
...


XML::RSS sagt in der Doku, dass es als Default-Encoding utf8 annimmt, wenn man beim new nichts sagt. Versuch doch einfach mal, dem parse utf8 zu geben, d.h.:
Code: (dl )
$rss->parse( encode( "utf8", $ticker ) );


Ich habe testweise unten mal dein SQL-Statement ge-print-ed. Wenn ich obige Zeile einsetze, sehen die SQL-Befehle zumindest richtig aus.

Quote
Code: (dl )
1
2
3
	my $sth = "INSERT INTO `meinetabelle` (`titel`) VALUES ('$title');";
my $query=$dbh->prepare($sth);
$query->execute;

Und hier hoffe ich doch mal inständig, dass du das NIE wirklich so machst - vor allem benutzt du ja schon prepare + execute, dann kannst du auch Platzhalter verwenden! (Stichwort SQL injection) Alternativ $dbh->do verwenden und dann $dbh->quote($title) einsetzen! Aber niemals, wirklich NIE NIE NIEMALS direkt einen Wert in ein SQL-Statement schreiben, der auch noch aus dem Internet kommt (nochmal schlimmer).

Und $sth sollte ein Statement-Handle sein, nicht die SQL-Query. Das ist verwirrend.
Last edited: 2013-11-27 00:28:47 +0100 (CET)

View full thread für in der MySQL-Datenbank ...