200 Namen aufeinmal in DB eintragen. ?

flandersX

Mitglied
Hallo,

ich muss für die Arbeit 200 Namen in die mySQL DB einfügen, per phpmyADMIN.

Da wollte ich mal nachhören ob es nicht ne möglichkeit gibt diese autom. per php einzufügen.
Und wenn ja, welche.

für Hilfe wäre sehr dankbar ! :)
 
Und wo ist jetzt das Problem?

Textdatei einlesen, jede Zeile der Datei durchgehen und den Namen in die DB schreiben.

Stichworte:

fopen()
file()
foreach()
mysql_query()
 
PHP:
<?PHP
$file = fopen("deinedatei.txt", "r");
$zeilen = explode("\n", $file);

$sql = mysql_connect('mysql_host','mysql_user','mysql_pwd');

for($i=0;$i <= sizeof($zeilen); $i++)
{
     $sqlCmd = "INSERT INTO datenbank (`name`) VALUES ('{$zeilen[$i]}')";
     $sqlQry = mysql_query($sqlCmd,$sql);
}
fclose($file);
?>

Musst du halt noch etwas anpassen...
 
Das geht besser:
PHP:
$file  = file_get_contents('deinedatei.txt');
$lines = explode("\n", $file);

$connection = mysql_connect('mysql_host', 'mysql_user', 'mysql_pwd');
$values = array();

foreach($lines as $line)
{
  $values[] = '(' . $line . ')';
}

$sql   = 'INSERT INTO datenbank (`name`) VALUES ' . implode(',', $values);
$query = mysql_query($query, $sql);
 
hallo,

erstmal vielen Dank für die Antworten.

Ich habe jetzt gestern die halbe Nacht damit verbracht.

So benutze ich nun das Script:


PHP:
error_reporting(E_ALL);

$file  = file_get_contents('namen.txt');
$lines = explode("\n", $file);
 
$connection = mysql_connect('localhost', 'dbname', 'dbpw');
$values = array();
 
foreach($lines as $line)
{
  $values[] = '(' . $line . ')';
}
 
$sql   = 'INSERT INTO kundennamen (`namen`) VALUES ' . implode(',', $values);
$query = mysql_query($sql, $connection);

print "$sql";

Aber egal was ich mache, es wird einfach nichts eingtragen.
Es gibt auch keine Fehlermeldung.

die SQL Ausgabe zeigt mir:
INSERT INTO kundennamen (`namen`) VALUES (name1 ),(name2 ),(name3 ),(name4 ),(name5 ),(name6 ), usw...

woran könnte es liegen ?
 
Zudem müssen die Namen noch in ' oder " gesetzt werden. Ansonsten sucht SQL ein Feld mit dem Namen der aus der Datei ausgelesen wird.

PHP:
$values[] = '(' . $line . ')';
//ersetzen durch
$values[] = "('{$line }')";
//oder durch
$values[] = "('" . $line . "')";
 
Zurück