CSV-Import Texttrenner entfernen

Hallo hier ein kleiner Codeschnipsel fuer dich. Habe auch eine Klasse dazu geschrieben, die ich allerdings erst wieder heraussuchen muesste.
MfG, Andy

PHP:
<?php

error_reporting(E_ALL);

// create database object
$mysqli = new mysqli("localhost", "my_user", "my_password", "my_db");

// check connection handle
if( mysqli_connect_errno() )
{
    echo 'Connect failed';
    exit();
}

// assign table
$table = "my_table";

// initiate variable for sql statement

// open file
$fp = fopen ("your/dir/test.csv", "r");

// initiate data array
$data = array();

// read data into array
while( !feof($fp) )
{
     // read line
     $line = fgets($fp, 4096);

     // split fields
     $fields = explode(";", $line);

     // add fields to array
     $data[] = $fields;

     // prepare fields
     $fields = '(' . implode( ', ', $fields ) . ')';
        
     // create sql statement
     $sql = sprintf( "INSERT INTO %s VALUES %s;", $table, $fields );
}

// close file
fclose( $fp );

// save to database
if( !$mysqli->multi_query($sql) )
{
    echo 'Error accured.';
    exit();
}

// close connection
$mysqli->close();

// output array
var_dump( $data );

?>
 
Zuletzt bearbeitet von einem Moderator:
@splasch
@catull

vielen Dank für eure Hinweise und Lösungsvorschläge.
Auf die Gliederung der CSV habe ich leider keinen Einfluß da diese von Extern kommt.

Der wirkliche Fehler lag im HTML-Code. Bei Antreffen eines ( ' ) wurde entweder ganz abgebrochen oder ein Datensatzende interpretiert und ein neuer begonnen. In Folge wurden dann bei jedem Antreffen eines Leerschrittes neue Datensätze begonnen. Erst durch vorheriges Löschen von ( ' ) ist der Fehler beseitigt. Alles wird nun korrekt in die SQL abgespeichert. Kleine Ursache - große Wirkung.

Ich bedanke mich bei allen die an der Lösung meines Problems mitgewirkt haben.
mfg
Julia
 
Zurück