Textfile auslesen und in ein Textfeld in einer Tabelle eintragen

Status
Für weitere Antworten geschlossen.

adminanwärter

Benutzer
Beiträge
11
Guten Abend zusammen,

ich hänge leider fest. Ich möchte den Inhalt einer Textdatei in ein Textfeld einer Tabelle schreiben.

Code:
LOAD DATA local INFILE ("post3.txt") INTO TABLE phpbb_posts (post_text)

Der Error sieht so aus

Fehler​

SQL-Befehl: Kopieren




LOAD DATA local INFILE ("post3.txt") INTO TABLE phpbb_posts (post_text);





MySQL meldet: Dokumentation

#1064 - Fehler in der SQL-Syntax. Bitte die korrekte Syntax im Handbuch nachschlagen bei '("post3.txt") INTO TABLE phpbb_posts (post_text)' in Zeile 1

Der Inhalt der post3.txt ist ein Gedicht und soll genau so in das Textfeld wie es nun mal ist.

Ich vermute dass ich nach
INTO TABLE phpbb_posts

den Fehler habe. Das Einzige was ich gefunden habe (außer cvs-Beispielen) ist der code da oben. Jemand eine Idee wie es gehen könnte?
 
Werbung:
Ich hab noch einen im Internet gefunden...aber der geht auch nicht. Der Vollständigkeit halber

Code:
Insert INTO 'phpbb_posts'('post_text') Values (NOW(), LOAD_FILE('post3.txt'));

Ah, ist von 2010 sehe ich gerade


Mein Mysql ist Version 5.7.3306
 
also angenommen eine Tabelle wie folgt:

Code:
postgres=# create table demo(id int generated always as identity primary key, t text);
CREATE TABLE

Dann kannst Du später dies machen:

Code:
echo "insert into demo (t) values ('`(cat gedicht.txt)`')" |psql -U postgres

Test:

Code:
postgres=# select * from demo;
 id |          t          
----+---------------------
  1 | das ist ein gedicht
(1 row)

postgres=#

Damit ist der Inhalt von gedicht.txt in der Tabelle gelandet.
 
Danke für die Antworten. Ich bin ziemlich neu in SQL, bemühe mich aber.

Das ist die Tabelle. Konnte ich über phpMyAdmin abfragen. Ist ein phpBB3 Forum bei einem Webhoster.

Code:
INSERT INTO `phpbb_posts`(`post_id`, `topic_id`, `forum_id`, `poster_id`, `icon_id`, `poster_ip`, `post_time`, `post_reported`, `enable_bbcode`, `enable_smilies`, `enable_magic_url`, `enable_sig`, `post_username`, `post_subject`, `post_text`, `post_checksum`, `post_attachment`, `bbcode_bitfield`, `bbcode_uid`, `post_postcount`, `post_edit_time`, `post_edit_reason`, `post_edit_user`, `post_edit_count`, `post_edit_locked`, `post_visibility`, `post_delete_time`, `post_delete_reason`, `post_delete_user`)
VALUES ('15','2','2','58','0','89.247.174.49','1704785308','0','1','1','1','1','testi','test','','','0','','','1','0','','0','0','0','1','0','','0');

Und da soll jetzt beim Erstellen oder direkt danach in das Feld `post_text` der Inhalt aus der Textdatei als Text rein. Wenn es nur einer wäre oder zehn, dann würde ich es per Hand kopieren. Aber es sind 1929. Und da dachte ich mir "besser automatisieren".

Ich habe den "cat" mal ausprobiert und da zeigt er an

dot.gif
1 Datensatz eingefügt.
ID der eingefügten Zeile: 18 (Die Abfrage dauerte 0.0004 Sekunden.)
insert into phpbb_posts (post_text) values ('`(cat post3.txt)`');
[ Inline bearbeiten ] [ Bearbeiten ] [ PHP-Code erzeugen ]

Allerdings sieht es dann so aus, hat das "cat post3.txt" einfach als string da rein gesetzt
(17, 0, 0, 0, 0, '', 0, 0, 1, 1, 1, 1, '', '', '`(cat post3.txt)`', '', 0, '', '', 1, 0, '', 0, 0, 0, 0, 0, '', 0);
 
Ich bin jetzt mal auf UPDATE umgeschwungen inklusive CONCAT - von der Idee mit dem CAT oben

UPDATE phpbb_posts SET post_text = concat(post_text,'post3.txt') WHERE post_id=16;

Aber auch hier wird einfach nur der Dateiname rein kopiert, die Datei nicht ausgelesen

(16, 2, 2, 58, 0, '89.247.174.49', 1704785308, 0, 1, 1, 1, 1, 'testi', 'test', 'post3.txt', '', 0, '', '', 1, 0, '', 0, 0, 0, 1, 0, '', 0);
 
anstatt wild rumzuprobieren solltest Du evtl. mal die Doku zu load_file(), welches Du da probierst, lesen. Aber ich bezweifle, daß Du die nötigen Voraussetzungen erfüllst, die in der Doku genannt sind.
 
Ich habs schon gelöst.

Ich weiß dass ich es weiß.

Ich weiß dass du es nicht weißt.

Und der Rest der Kundschaft hier kann sich bei deiner unverschämten Art bedanken dass ich die Lösung hier nicht gepostet habe.
 
Werbung:
Eine Veröffentlichung deines Lösungsweges würde unter Umständen andere Besucher dieses Forums weiterhelfen...
Ich denke einmal, dass dieser nicht unter die Top-Secret-Lösung fällt ;)

EDIT mit kommentar anbei:
@akretschmer ist in diesem Forum unser Miraculix aus der Asterix Filmserie...
er ist sich mehr bewusst, als man denken mag, und es sprechen viele Jahre berufliche Erfahrung aus ihm.

In den ersten 8 Posts bereits soweitgehen, dass man die Vorschläge anderer in der Luft zerreißt und meint, man hat eine Lösung ohne der Veröffentlichung dieser finde ich ist nicht wirklich die feinste Art...
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
Zurück
Oben