Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

LOAD DATA LOCAL INFILE und Import von Backslashes

6 views
Skip to first unread message

Daniel Schmidt

unread,
Jul 24, 2010, 1:11:41 PM7/24/10
to
Hallo NG,

ich möchte mittels LOAD DATA LOCAL INFILE eine Textdatei importieren die
Backslashes enthält. Mir steht dazu PHP zur Verfügung.

Nun bin ich mit meinem Latein

- Backslashes mittels preg_replace() zu verdoppteln bzw.
- mit mysql_real_escape_string() mysql konform zu maskieren

am Ende, da die Zeilenumbrüche \n durch solche Sachen verloren gehen.

Weiß jmd. eine gute Lösung?


MFG Daniel

Karl Pflästerer

unread,
Jul 24, 2010, 2:30:32 PM7/24/10
to
Daniel Schmidt <news...@ds-webtools.de> writes:

Ohne die Daten zu sehen und zu wissen, wieso es load data infile sein
muss (hast du so viele Daten, dass INSERT zu langsam ist?), kann man
nichts sagen.

KP

Thomas 'PointedEars' Lahn

unread,
Jul 27, 2010, 12:02:16 PM7/27/10
to
Daniel Schmidt wrote:

> ich möchte mittels LOAD DATA LOCAL INFILE eine Textdatei importieren die
> Backslashes enthält. Mir steht dazu PHP zur Verfügung.

OK.



> Nun bin ich mit meinem Latein
>
> - Backslashes mittels preg_replace() zu verdoppteln bzw.
> - mit mysql_real_escape_string() mysql konform zu maskieren

Weshalb sollte etwas davon nötig sein?

<http://dev.mysql.com/doc/refman/5.1/en/load-data.html>

> am Ende, da die Zeilenumbrüche \n durch solche Sachen verloren gehen.
>
> Weiß jmd. eine gute Lösung?

Nein, es fe lt leider das Problem.

<http://www.tty1.net/smart-questions_de.html>

--
PointedEars

Daniel Schmidt

unread,
Jul 28, 2010, 2:15:17 PM7/28/10
to
> Weshalb sollte etwas davon nötig sein?
> <http://dev.mysql.com/doc/refman/5.1/en/load-data.html>
> Nein, es fe lt leider das Problem.

Das Problem ist, das BAckslashes beim Import mit LOAD DATA LOCAL INFILE
verloren gehen. Ist das eine Server Sache?

Grüße Daniel

Thomas 'PointedEars' Lahn

unread,
Jul 28, 2010, 6:29:02 PM7/28/10
to
Daniel Schmidt wrote:

> [Thomas 'PointedEars' Lahn wrote:]

Das ist AFAIK eher eine Frage des falschen Dateiformats (Backslashes nicht
mit "\\" escaped) oder des falschen Parameters für LOAD DATA … INFILE …
ESCAPED BY …. Mit PHP hat das alles wenig zu tun.

Bitte lass je Zitatebene eine Einleitungszeile stehen, und kürz Zitate
sinnerhaltend. Obiges habe ich *so* _nicht_ geschrieben.

<http://lernst.de/zitieren/kriegst.de/antworten>

--
PointedEars

Daniel Schmidt

unread,
Jul 29, 2010, 2:25:36 PM7/29/10
to
> Das ist AFAIK eher eine Frage des falschen Dateiformats (Backslashes nicht
> mit "\\" escaped) oder des falschen Parameters für LOAD DATA … INFILE …
> ESCAPED BY …. Mit PHP hat das alles wenig zu tun.

Wie kann ich das Problem lösen? Die Backslashes sind nicht mit \\ escaped!

Grüße Daniel

Thomas 'PointedEars' Lahn

unread,
Jul 29, 2010, 4:27:53 PM7/29/10
to
Daniel Schmidt wrote:

[Einleitungszeile ergänzt]
vvvvvvvvvvvvvvvvvvvvvvvv
> [Thomas 'PointedEars' Lahn:]

Wie Karl schon schrieb: Poste *relevante* Beispieldaten und den *relevanten*
PHP-Code, mit dem Du die Daten importieren willst. Mindestens eine Angabe
der verwendeten PHP- und MySQL-Version wäre auch sehr sinnvoll. Obwohl ich
Dir verschiedene Lösungen anbieten könnte, muss keine davon bei Dir
funktionieren, da ich Deine Daten und Deinen Code nicht kenne. Es wäre also
für alle nur verschwendete Zeit. Das hier ist kein Ratespiel.

Und ich bitte Dich hiermit ein letztes Mal, beim Zitieren die
Einleitungszeile stehen zu lassen. Auf die Gründe dafür habe ich Dich
bereits hingewiesen. Weitere Nichtbeachtung dieser Bitte wird zur Folge
haben, dass ich Deine Postings ignoriere.

<http://www.tty1.net/smart-questions_de.html>
<http://www.php-faq.de/>


Score adjusted
--
PointedEars

Daniel Schmidt

unread,
Jul 30, 2010, 6:03:16 AM7/30/10
to
Am 29.07.2010 22:27, schrieb Thomas 'PointedEars' Lahn:

> Wie Karl schon schrieb: Poste *relevante* Beispieldaten und den *relevanten*
> PHP-Code, mit dem Du die Daten importieren willst. Mindestens eine Angabe
> der verwendeten PHP- und MySQL-Version wäre auch sehr sinnvoll. Obwohl ich

Ich hoffe ich habe jetzt richtig zitiert. Das ist ja wie beim Bauamt.

mysql_query("DATA LOCAL INFILE 'textdatei_mit_einfachen_backslashes.txt'
INTO TABLE Testberichte FIELDS TERMINATED BY '|' LINES TERMINATED BY
'\n'") OR die (mysql_error());

PHP-Version: 4.4.9
MySQL-Version: 4.0.27-standard


Grüße Daniel
--
Hoffentlich das richtige Formular richtig ausgefüllt.


Thomas 'PointedEars' Lahn

unread,
Jul 30, 2010, 11:40:24 AM7/30/10
to
Daniel Schmidt wrote:

> Thomas 'PointedEars' Lahn schrieb:


>> Wie Karl schon schrieb: Poste *relevante* Beispieldaten und den
>> *relevanten* PHP-Code, mit dem Du die Daten importieren willst.
>> Mindestens eine Angabe der verwendeten PHP- und MySQL-Version

>> wäre auch sehr sinnvoll. [...]


>
> Ich hoffe ich habe jetzt richtig zitiert.

Hast Du. Deine Signatur passt aber noch nicht, sie sollte mit "-- " (Minus,
Minus, Leerzeichen, Zeilenumbruch) abgetrennt sein.

Siehe auch:

- news:de.newusers.infos
- news:de.newusers.questions
- news:de.test

> Das ist ja wie beim Bauamt.

Dazu schreib' ich höflicherweise jetzt mal nichts.

> mysql_query("DATA LOCAL INFILE 'textdatei_mit_einfachen_backslashes.txt'
> INTO TABLE Testberichte FIELDS TERMINATED BY '|' LINES TERMINATED BY
> '\n'") OR die (mysql_error());

Mindestens eine Beispielzeile aus 'textdatei_mit_einfachen_backslashes.txt'
fe lt noch für die Analyse. Jedoch:

> PHP-Version: 4.4.9
> MySQL-Version: 4.0.27-standard

Relevant wäre dann <http://dev.mysql.com/doc/refman/4.1/en/load-data.html>.

Nur: Das ist beides hoffnungslos veraltet; den betreffenden Server sollte
man aus Sicherheitsgründen sofort vom Netz nehmen!

Der Support für PHP 4.x wurde mit Ablauf des Jahres 2007 (CE)¹, der für
MySQL 4.0 mit Ablauf des 30. September 2006 (Active) bzw. des 30. September
2008 (Extended) eingestellt (die Dokumentation dafür wird voraussichtlich
Ende dieses Jahres vom Netz genommen).²

Insbesondere unterstützt MySQL 4.0.x nicht die Angabe einer Zeichencodierung
für Datenbanken, Tabellen und Felder (das wurde erst mit 4.1 eingeführt), es
ist also für den Import von Textdaten (die heutzutage gern UTF-8-codiert
vorliegen) denkbar ungeeignet.

_________
¹ <http://de.php.net/releases/>
² <http://dev.mysql.com/doc/refman/4.1/en/>
<http://www.mysql.com/about/legal/lifecycle/#calendar>
--
kopfschüttelnd,

PointedEars

0 new messages