Fehler beim CSV Import

Hast du einen Fehler in der aktuellen Version gefunden ? Diesen kannst du uns hier mitteilen und uns bei der Fehlersuche helfen.
Antworten
Marcus
Beiträge: 16
Registriert: 30. Mai 2017, 12:45

Fehler beim CSV Import

Beitrag von Marcus »

Beim Import von Daten als CSV sind mir Fehler aufgefallen.

1. Wenn in einem Textfeld ein Komma vorkommt, geht Admidio davon aus, dass ein neuer Satz beginnt.
CSV.
Datum, Geburtstag, Name, Text
"14.01.20188","12.01.1970","Berger","Text mit, Komma"
Hier würde im Textfeld nur "Text mit" Importiert und alle danach kommenden Daten wären um ein Feld verrutscht.
Alle anderen Programme (Excell) halten sich an die Regel, dass ein Komma zwischen "" nicht beachtet werden.

2. Gibt ein User in einem Textfeld ENTER (LF/CR) ein, behandelt Admidio dass als neuen Datensatz im Import.
Hier gilt das gleiche wie oben, ein LF/CR in " " dürfen nicht gewertet werden.

3. Im Admidio habe ich ein paar Textboxen (4000 Zeichen) es werden beim Import aber immer nur die ersten 400 Zeichen Importiert.
Alles was danach kommt wird verworfen.

Als Import habe ich eine CSV Datei im UTF-8 Format.
Admidio Version ist aktuell.
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: Fehler beim CSV Import

Beitrag von XimeX »

Hab mir den Code angesehen... Uiiuiiuiii...
Warum Fehler 1 und 2 auftreten ist durch den aktuellen Code klar erkennbar. Warum Fehler 3 auftritt kann ich noch nicht nachvollziehen. Meiner Meinung nach müssten die Felder wenn dann auf 255 gekürzt werden und nicht 400.
Siehe: https://github.com/Admidio/admidio/blob ... v.php#L163
Könntest ja mal diesen Wert erhöhen und mal testen ob Fehler 3 behoben ist.

Um das Problem sauber zu lösen würde ich eine lib einsetzen die den ganzen parsing teil übernimmt. Jedoch ist diese nur mit PHP 5.5+ kompatibel. Würde das Problem also erst in der v4.0 fixen wenn wir die min PHP Version erhöhen.

https://github.com/Admidio/admidio/issues/703
Marcus
Beiträge: 16
Registriert: 30. Mai 2017, 12:45

Re: Fehler beim CSV Import

Beitrag von Marcus »

XimeX hat geschrieben:Siehe: https://github.com/Admidio/admidio/blob ... v.php#L163
Könntest ja mal diesen Wert erhöhen und mal testen ob Fehler 3 behoben ist.
Vielen dank für die Rückmeldung.
Ich habe in der Zeile 163 den Wert auf 4000 erhöht und siehe da, nach einem Import ist nun die komplette Textbox gefüllt ;-)
Punkt drei haben wir also schon mal vom Tisch ;-)
mrbogus
Beiträge: 5
Registriert: 13. Jul 2017, 21:33

Re: Fehler beim CSV Import

Beitrag von mrbogus »

Hallo Zusammen,

Ich habe auch Probleme beim Import von Benutzern, allerdings verwende ich gerade keine Release-Version von Admidio, sondern zum Test die aktuelle Version aus dem master-Branch. Wenn der Beitrag daher hier falsch ist, sorry (wo kann ich sonst zur Entwicklung beitragen?).

Ich habe eine Benutzer-Liste aus einer Installation der aktuellen Release-Version exportiert und versuche diese jetzt zu Importieren. Selbst wenn ich die CSV-Datei per Hand auf nur drei Zeilen einkürze (kein Komma, kein Zeilenumbruch usw.), wird nichts importiert und ich erhalte die folgende Fehlermeldung:

Code: Alles auswählen

S Q L - E R R O R

CODE: 00000




B A C K T R A C E

FILE: adm_program/system/classes/database.php
LINE: 686
CALL: Database->showError()

FILE: adm_program/system/classes/tableaccess.php
LINE: 529
CALL: Database->queryPrepared()

FILE: adm_program/system/classes/profilefields.php
LINE: 523
CALL: TableAccess->save()

FILE: adm_program/system/classes/user.php
LINE: 1515
CALL: ProfileFields->saveUserData()

FILE: adm_program/modules/members/import_csv.php
LINE: 254
CALL: User->save()
In der Apache error.log gibt stehen folgende Fehler (anonymisiert):

Code: Alles auswählen

[Sun Jan 28 20:27:48.455323 2018] [fcgid:warn] [pid 9814] [client ****:50345] mod_fcgid: stderr: [2018-01-28 20:27:48.450269] Admidio.CRITICAL: PDOException: SQLSTATE[HY000]: General error: 1205 Lock wait timeout exceeded; try restarting transaction  {"file":"/var/www/vhosts/*****/admidio-boa/adm_program/system/classes/database.php","line":682,"class":"Database","function":"queryPrepared"}, referer: https://*****.de/admidio-boa/adm_program/modules/members/import_csv_config.php
[Sun Jan 28 20:27:48.455371 2018] [fcgid:warn] [pid 9814] [client ****:50345] mod_fcgid: stderr: [2018-01-28 20:27:48.451544] Admidio.CRITICAL: 00000:  |   {"file":"/var/www/vhosts/*****.de/admidio-boa/adm_program/system/classes/database.php","line":883,"class":"Database","function":"showError"}, referer: https://****.de/admidio-boa/adm_program/modules/members/import_csv_config.php
Das gleiche Verhalten hatte ich sowohl auf meinem Webspace als auch auf einer lokalen XAMPP-Installation. In der Release-Version hatte der Import noch funktioniert... Irgendeine Idee woher das Problem kommt bzw. wie ich es beheben könnte?

Viele Grüße
Matthias
XimeX
Developer
Beiträge: 1148
Registriert: 12. Jul 2015, 13:21
Wohnort: Austria

Re: Fehler beim CSV Import

Beitrag von XimeX »

@mrbogus kannst du den Fehler mit der aktuellen v3.3 noch nachstellen?
Benutzeravatar
fasse
Administrator
Beiträge: 6183
Registriert: 12. Nov 2005, 16:06

Re: Fehler beim CSV Import

Beitrag von fasse »

Die Probleme mit den Anführungszeichen beim CSV-Import sind mit Version 3.3.15 behoben.

Viele Grüße
Fasse
Antworten