# txt Datei in Mysql Datenbank speichern



## hasnaa (21. April 2008)

Hallo,

ich möchte gerne eine Datei in eine Tabelle einer Mysql-Datenbank  inportieren, dafür habe ich ein C-Code geschrieben, das die folgende Schritte realisiert:

Verbindung zur Datenbank aufbauen: ist schon da.

txt-Datei zum lesen öffnen.

Durch Insert daten in der Tabelle speichern.

Leider mein code wird kompiliert ohne Fehlern, aber beim ausführen wird nicht geatan. Anbei ein Stück vin mein Code vielleicht kann eine von euch mir weiterhelfen.

Datenbank:Mysql
Programmiersprache: C
Betriebssystem: Ubuntu(Linux)

file = fopen("/homme/hasnaa/Datei.txt","r");
	  fsize = fread(buffer, 1, sizeof(buffer), file);
	  fclose(file);
	  tmppos = strmov(tmp, "INSERT INTO features VALUES (");
	  tmppos += mysql_real_escape_string(&mysql, tmppos, buffer, fsize);
	  tmppos = strmov(tmppos, "')");
	  *tmppos++ = (char)0;
	  printf("endlich"),
	  mysql_query(&mysql, tmp);
	  id = (int)mysql_insert_id(&mysql);
	  mysql_free_result(res);
	  mysql_close(&mysql);
	  return 0;           

Danke euch


----------



## Dunas (21. April 2008)

Dafür gibt es den SQL-Befehl LOAD DATA INFILE


----------



## hasnaa (21. April 2008)

Hallo Dunas,

meinst du statt Insert....., benutze ich LOAD ............., oder wie?
kannst du vielleicht mir einen Beispiel dafür  schreiben.

Danke


----------



## Flex (21. April 2008)

LOAD DATA INFILE

Die Dokumentation von MySQL ist da recht gut und bringt auch Beispiele.


----------



## hasnaa (21. April 2008)

Hi,
Ja ich habe auch mir das angeschaut, aber leider bin ich  nicht so zu recht gekommen.
LOAD DATA ..................IN FILE 'my-File'.................INTO  TABLE my-table.....................

alles was mit punkte ergäntzt ist optional oder wie? wenn nein was soll ich dort eingeben, Spalten-Name und Dtentyp oder wie?

Danke


----------



## hasnaa (21. April 2008)

aber moment, LOAD DATA INFILE ist doch ein SQL Befehl, das im console eingegen wird:
mysql>LOAD DATA.........................

odr nicht?

ich mache ganz arbeit(Tabelle anlegen, daten aus Datei auslesen und in der Datenbak speichern............) anhand ein C-Code.


Danke


----------



## Dunas (22. April 2008)

hasnaa hat gesagt.:


> aber moment, LOAD DATA INFILE ist doch ein SQL Befehl, das im console eingegen wird:
> mysql>LOAD DATA.........................
> 
> odr nicht?
> ...



Ich hatte den SQL-Code in meinem ersten Post verlinkt mit der entsprechenden Seite des MySQL-Handbuchs.

```
LOAD DATA INFILE 'data.txt' INTO TABLE db2.my_table;
```
 Das wäre ein Besipeil aus dem Handbuch.

Wieso machst du es dir so Umständlich mit deinem C-Code? Schick doch einfach die entsprechenden SQL-Befehle an den server.


----------



## hasnaa (22. April 2008)

Ja ich möchte auch gerne das mit sql Befehl machen, aber Leider die txt Datei ist nur eine zwischen Speicher und enthäle Ergebnisse der Messungen, d.h die Datei ist immer andres und das hängt von gtestete Signal ab.

dazu mein Code soll auf Basis diese Eingabe was andres machen, also soll alles automatisch laufen.

was du jetzt gerade mir geschrieben hast, bleibt immer sql Befehl odr so  kann ich in mein code hinzufügen(code in dem ersten Schreiben) oder wie?

Danke


----------



## hasnaa (23. April 2008)

Hallo,
keiner kann mir weiter helefen, oder eine Hinweis mir geben?

ich suche und  warte immer noch

Danke


----------

