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.
Fehler beim CSV Import
Re: Fehler beim CSV Import
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
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
Re: Fehler beim CSV Import
Vielen dank für die Rückmeldung.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.
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
Re: Fehler beim CSV Import
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:
In der Apache error.log gibt stehen folgende Fehler (anonymisiert):
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
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()
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
Viele Grüße
Matthias
Re: Fehler beim CSV Import
@mrbogus kannst du den Fehler mit der aktuellen v3.3 noch nachstellen?
Re: Fehler beim CSV Import
Die Probleme mit den Anführungszeichen beim CSV-Import sind mit Version 3.3.15 behoben.
Viele Grüße
Fasse
Viele Grüße
Fasse