2009-07-26 12 views

Antwort

1
$conn = mysql_connect('localhost', 'root', 'password'); 
if (is_resource($conn)) { 
    if (mysql_select_db('database', $conn)) { 
     $lines = file('file.txt') 

     foreach ($lines as $line) { 
      $query = mysql_query('INSERT INTO table (text) VALUES ("' . $line . '")); 
      if(!$query) { die ('Error: ' . mysql_error();); } 
     } 
    } 

} 
3

Es gibt ein paar Ansätze, die Sie die Datei je nachdem, wie groß verwenden können.

  1. Verwenden MySQL - mysql kann CSV-Dateien importieren direkt LOAD DATA [LOCAL] INFILE

  2. PHP (kleine Datei): file() verwenden, um die Datei in ein Array zu laden. Schleife über das Array und INSERT jede Zeile

  3. PHP (große Datei): Verwenden Sie fgets(), um die Datei eine Zeile nach dem anderen zu durchlaufen. Hiermit können Sie einen Bulk-Insert-Abfrage (INSERT INTO ... VALUES (1), (2), (3))

0

Dies ist ein super vereinfachte Antwort bauen, aber hier sind einige der Grundlagen:

$filename = "filename.txt"; 

while (!feof($fp)){ 
$string = fgets($fp, 1024); 
mysql_query("INSERT INTO <table> (<fieldname>) VALUES('$string')") 
} 
2

So etwas sollte funktionieren:

$fh = fopen('file.txt','r'); 
$db = new PDO("mysql:host=$host;dbname=$database", $username, $password); 
while (!feof($fh)) { 
    $line = fgets($fh); 
    $db->exec("INSERT INTO mytable(line) VALUES ('$line');"); 
} 
0

Seien Sie vorsichtig über Feof und Klartext, Feof nicht wahr nach dem Lesen der letzten Zeile und setzen Sie Ihre Schleife infinit

machen einen Doublecheck: S

while(!feof($fh)){ 
    $linha = fgets($fh,4096); 
    if (!feof($fh)) { // doublecheck 
     proccess what you need 
    } else {fclose($fh); break 1;} // real eof 
} 

einen Test machen

Verwandte Themen