ebiz-webhosting
- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > SQL / Datenbanken
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


SQL / Datenbanken Probleme mit SQL? Hier könnt ihr eure Fragen zu SQL (MySQL, PostgreSQL, MS-SQL und andere ANSI-SQL Server) los werden.

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 18-10-2004, 21:00
Majestic
 Newbie
Links : Onlinestatus : Majestic ist offline
Registriert seit: Sep 2004
Beiträge: 28
Majestic ist zur Zeit noch ein unbeschriebenes Blatt
Standard CSV Datei in MySQL importieren

Hi, hab schon länger hier im forum gesucht, nur leider haben alle Antworten bei mir nicht geholfen!
Hoffe ihr könnt mir weiter helfen:

Ich möchte eine csv datei in meine DB importieren. Script und file liegen im gleichen verzeichnis auf dem server.

hier das script, hoffe ihr könnt mir helfen:
PHP-Code:
$db_MenuTitle[0]  = "Eintrag 1";         // Bezeichnung des Eintrags 
$db_Hostname[0]   = "localhost";         // Datenbank-Host           
$db_UserName[0]   = "";                  // Benutzername           
$db_Password[0]   = "";                  // Zugehoeriges Passwort
$db_Database[0]   = "";                  // Datenbank
$db_Table[0]      = "termine_roh";                  // Table, in den die CSV
$db_File[0]       =  "termine.csv";                  // Verzeichnispfad 


          
$select_db 0;
 

            
// Connect zur Datenbank
            
mysql_connect($db_Hostname[$select_db], $db_UserName[$select_db], 
$db_Password[$select_db]) || 
die(
"Can't Connect to Database: ".mysql_error());
            
mysql_select_db($db_Database[$select_db]);



            
// CSV-Datei in die Datenbank übertragen
            
$fp fopen ("termine.csv","r");
            
$sql2 "LOAD DATA LOCAL INFILE '$fp' INTO TABLE termine_roh 
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '\"' 
ESCAPED BY '\\' 
LINES TERMINATED BY '\r\n'"
;
           
$result mysql_query($sql2);
           echo  
mysql_error();
           echo 
$result
als fehlermeldung bekomme ich:

Zitat:
You have an error in your SQL syntax.
Check the manual that corresponds to your MySQL server version for the right syntax
to use near ''' at line 2
Schonmal Danke für eure Hilfe!!
EDIT:
TobiaZ macht seine Umbrüche jetzt selber!

Geändert von Majestic (18-10-2004 um 21:54 Uhr)
Mit Zitat antworten
  #2 (permalink)  
Alt 18-10-2004, 21:07
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 24.486
wahsaga befindet sich auf einem aufstrebenden Ast
Standard Re: CSV Datei in MySQL importieren

und was steht in zeile zwei der CSV-datei ...?
(und in der davor/paar danach.)
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #3 (permalink)  
Alt 18-10-2004, 21:09
Majestic
 Newbie
Links : Onlinestatus : Majestic ist offline
Registriert seit: Sep 2004
Beiträge: 28
Majestic ist zur Zeit noch ein unbeschriebenes Blatt
Standard

folgender Inhalt:

[QUOTE]
"01.10.2004","Bruchsal","Fabrik","Alternative mit DJ Mütze & DJ Matt Nu-Metal, X-Over, Independent Eintritt frei 21:00 - 4:00 Uhr"
"01.10.2004","Frankenthal","B9 - ehem. FUN","Ladys Night (Ladys erhalten freien Zutritt + 2 Freigetränke im Wert von je bis zu 3,00.-)"
"01.10.2004","Frankfurt","U 60311","6 Jahre U60311 pt.1 CARI LEKEBUSCH (Stockholm), CHRIS LIEBING (CL Recordings), MONIKA KRUSE (Terminal M), PIERRE & MARKY"
"01.10.2004","Heidelberg","8 Grad","HOUSE OF LOVE - DJ Jerome - ab 22h"
QUOTE]

wenn ich das file im phpmyadmin einfüge klappt es ohne problem.
hab auch die funktion fürs importieren "load data in ..." aus dem phpmyadmin kopiert!
Mit Zitat antworten
  #4 (permalink)  
Alt 18-10-2004, 21:22
wahsaga
  Moderator
Links : Onlinestatus : wahsaga ist offline
Registriert seit: Sep 2001
Beiträge: 24.486
wahsaga befindet sich auf einem aufstrebenden Ast
Standard Re: CSV Datei in MySQL importieren

OK, seh grade, der fehler liegt in deinem script, nicht in den daten.
Zitat:
PHP-Code:
$fp fopen ("termine.csv","r");
$sql2 "LOAD DATA LOCAL INFILE '$fp' INTO TABLE... 
du versuchst, einen dateizeiger an mysql zu übergeben - das kann natürlich nicht klappen.
davon, dass du in PHP eine datei geöffnet hat, weiß mysql selbstverständlich nichts.

bei LOAD DATA INFILE musst du den dateinamen angeben.
__________________
I don't believe in rebirth. Actually, I never did in my whole lives.
Mit Zitat antworten
  #5 (permalink)  
Alt 18-10-2004, 21:27
Majestic
 Newbie
Links : Onlinestatus : Majestic ist offline
Registriert seit: Sep 2004
Beiträge: 28
Majestic ist zur Zeit noch ein unbeschriebenes Blatt
Standard

habs jetzt soweit abgeändert:
PHP-Code:
$datei "termine.csv";
            
$sql2 "LOAD DATA LOCAL INFILE '$datei' INTO TABLE termine_roh 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '\"' 
ESCAPED BY '\\' LINES TERMINATED BY '\r\n'"

geht aber immer noch nicht, wiederrum der gleiche fehler!

EDIT:
TobiaZ macht seine Umbrüche jetzt selber!

Geändert von TobiaZ (18-10-2004 um 21:50 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 18-10-2004, 21:31
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.190
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Wäre es dir möglich, deinen Code evtl. vernünftig und sinngemäß umzubrechen?

Oder hast du einen 2000px Bildschirm?

Außerdem wäre es sinnvoll, wenn du die Query, die an die DB gesendet wird, postest, und nicht den PHP-Code mit Variablen.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #7 (permalink)  
Alt 18-10-2004, 21:37
Majestic
 Newbie
Links : Onlinestatus : Majestic ist offline
Registriert seit: Sep 2004
Beiträge: 28
Majestic ist zur Zeit noch ein unbeschriebenes Blatt
Standard

so hier die query:

LOAD DATA LOCAL INFILE 'termine.csv' INTO TABLE termine_roh FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\' LINES TERMINATED BY ' '

Kann es sein, das es an der letzten Anweisung liegt? Also dem Lines Terminated by ' '

da sollte nämlich" \r\n" stehen



Entschuldigt bitte den vergessenen Zeilenumbruch!
Mit Zitat antworten
  #8 (permalink)  
Alt 18-10-2004, 21:51
Majestic
 Newbie
Links : Onlinestatus : Majestic ist offline
Registriert seit: Sep 2004
Beiträge: 28
Majestic ist zur Zeit noch ein unbeschriebenes Blatt
Standard

wenn ich deinen code eingebe, bekomme ich die fehlermeldung in zeile 6 statt in zeile 2!
Mit Zitat antworten
  #9 (permalink)  
Alt 18-10-2004, 22:01
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.190
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

sorry, hatte es deswegen wieder gelöscht.

Code:
LOAD DATA 
LOCAL INFILE 'termine.csv' 
INTO TABLE termine_roh 
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"' 
ESCAPED BY '\\' 
LINES TERMINATED BY '\n'
so sah er aus, richtig?

Dann weißt du jetzt schonmal, wo der Fehler im Code liegt. Nimm mal bitte den gleichen code, aber escape mal bitte den \ in escaped by.

Im Manual hab ich was gelesen, dass die Zeichen in ESCAPED BY, LINES TERMINATED BY escaped werden müssen. wäre mal n versuch.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #10 (permalink)  
Alt 18-10-2004, 22:03
Majestic
 Newbie
Links : Onlinestatus : Majestic ist offline
Registriert seit: Sep 2004
Beiträge: 28
Majestic ist zur Zeit noch ein unbeschriebenes Blatt
Standard

escapen!?
sorry bin noch relativ neu im mysql
Mit Zitat antworten
  #11 (permalink)  
Alt 18-10-2004, 22:11
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.190
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

\ davor setzen
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #12 (permalink)  
Alt 18-10-2004, 22:12
Majestic
 Newbie
Links : Onlinestatus : Majestic ist offline
Registriert seit: Sep 2004
Beiträge: 28
Majestic ist zur Zeit noch ein unbeschriebenes Blatt
Standard

aso das hab ich!
Zitat:
ESCAPED BY '\\'
Mit Zitat antworten
  #13 (permalink)  
Alt 18-10-2004, 22:13
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.190
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

nein, nicht nur den \ sondern den \ vor ein Zeichen. Lies mal selber im Manual, habs jetzt so genau nicht auf Lager.
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #14 (permalink)  
Alt 18-10-2004, 22:16
Majestic
 Newbie
Links : Onlinestatus : Majestic ist offline
Registriert seit: Sep 2004
Beiträge: 28
Majestic ist zur Zeit noch ein unbeschriebenes Blatt
Standard

sorry wurd wohl nicht richtig dargestellt:

ESCAPED BY '\\' also zweimal "\"
Mit Zitat antworten
  #15 (permalink)  
Alt 18-10-2004, 22:22
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.190
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

LOAD DATA
LOCAL INFILE 'termine.csv'
INTO TABLE termine_roh
FIELDS TERMINATED BY ','
OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n'

Klappt bei mir wunderbar!
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

EM 2012 Tipp-Spiel ansehen EM 2012 Tipp-Spiel

Online Tipp-Spiel zur Fussball Europameisterschaft 2012, basierend auf php-Script mit hinterlegter mySql-Datenbank

27.05.2012 tippimnetz | Kategorie: PHP/ Spiele
Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 22:03 Uhr.