2017-01-23 6 views
1

Hallo allerseits ich bin neu mit PHP, also brauche ich etwas Hilfe.Einfügen Array in MySQL DB mit PHP

Ich habe eine .txt mit einigen Informationen, sagen wir mal so:

970,3584,D53,20170102,OL7GU9,9607,1AT03U2,A, 
970,3588,F7A,20170102,OL7GY6,9607,1AT03U2,A, 

Jeder dieser Werte ich sie in mein DB eingefügt werden soll (i bereits die Verbindung haben).

Mein Code ist so weit dies:

$myfile = fopen("crawler.txt", "r") or die("Unable to open file!"); 

    if ($myfile) { 
     $columns = explode(",", fread($myfile, filesize("crawler.txt"))) 
    } 

An dieser Stelle ich so ein Array haben:

array(8825) { [0]=> string(3) "970" [1]=> string(4) "3584" [2]=> string(3) "D53" [3]=> string(8) 
"20170102" [4]=> string(6) "OL7GU9" ....and so goes 

Wie kann ich den Einsatz jedes Element in der Anordnung der DB?

Mein aktueller Code:

foreach ($columns as $key => $value) { 
    $var1= $columns[0]; 
    $var2= $columns[1]; 
    $var3= $columns[2]; 
    $var4= $columns[3]; 
    $var5= $columns[4]; 
    $var6= $columns[5]; 
    $var7= $columns[6]; 
} 
+0

Verwenden Sie PDO oder MySqli? Was hast du probiert? Verfügen Sie über die Datenbankstruktur, um diese Informationen zu unterstützen? – Antony

+0

Ich benutze MYSQL, ich versuche diese jetzt: foreach ($ Spalten als $ Schlüssel => $ Wert) { \t \t $ var1 = $ Spalten [0]; \t \t $ var2 = $ Spalten [1]; \t \t $ var3 = $ columns [2]; \t \t $ var4 = $ Spalten [3]; \t \t $ var5 = $ Spalten [4]; \t \t $ var6 = $ Spalten [5]; \t \t $ var7 = $ Spalten [6]; \t \t \t} und ja, ich habe die DB-Struktur, um diese Informationen zu unterstützen. –

Antwort

1

Grundsätzlich müssen Sie nur noch den Einsatz Abfrage erstellen und es so ausführen. Ich habe PDO für dieses Beispiel verwendet:

$myfile = fopen("crawler.txt", "r") or die("Unable to open file!"); 

if ($myfile) 
{ 
    while (($line = fgets($myfile)) !== false) 
    { 
    // remove the comma at the end of every line 
    $line = rtrim($line, ','); 

    // example with PDO 
    $sql = 'INSERT INTO table_name (column_name1, column_name2, ...) VALUES (:param1, :param2, ...)'; 

    // build the parameter array 
    $elements = explode(',', $line); 

    // prepare the parameter array 
    $parameters = array(); 
    for($i=0;$i<len($elements); $i++) 
    { 
     $parameters["param$i"] = $elements[$i]; 
    } 

    $insertquery = $connection->prepare($sql); 
    $insertquery->execute($parameters); 
    } 

    fclose($myfile); 
} 

Wir durchlaufen jede Zeile in der Textdatei. Jede Zeile hat am Ende ein Komma (,). Wir müssen es entfernen, weil explodieren würde ein anderes leeres Array-Element zurückgeben, wenn wir nicht würden. Als nächstes müssen wir nur die Einfügeabfrage erstellen und sie unseren Array-Elementen übergeben.

+0

Das $ handle was es ist? –

+0

Oh, tut mir leid, dass ich falsch geschrieben habe. Ich habe es jetzt korrigiert – Stjubit

+0

Thx! Das hilft sehr. –