Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: kopiowanie tabeli z pliku
Forum PHP.pl > Forum > Bazy danych > MySQL
feel
Mam zainstalowany mysql na windowsie. Utworzyłem bazę danych "proba" i w niej tabelę "tab" za pomocą phpmyadmin. Teraz chciałbym skopiować dane do tej tabeli z pliku tekstowego. Dane w pliku mają następującą postać:

Jan|Kowalski|15
Adam|Bielksi|23
Anna|Biernacka|45

itp

Zabralem sie do tego w sposob nastepujacy: odpalilem plik C:mysqlbinmysql.exe i wpisałem kolejno:

u proba
copy tab from 'c:plik.txt' using delimiters '|'

ale to nic nie dalo sad.gif Czy zabieram sie do tego niewlasciwie?? Co robie zle? A moze ktos wie jak to sie dokladnie robi??
Mikoj
Ello,
mozesz napisac skrypt php który bedzie odczytywal linie po lini z pliku 'c:plik.txt' ' i dodwal do bazy danych...
spenalzo
Zakładając, że struktura tabeli 'tab' jest taka:
Kod
ID | imie | nazwisko | numer

(gdzie ID to autoincrement) możesz zrobić tak:
[php:1:5a9fce44fc]<?php
// tutaj daj
// łączenie

$f=file("plik.txt");
for($i=0; $i<count($f); $i++)
{
$d=explode("|",$f[$i]);
mysql_query("INSERT INTO tab (imie, nazwisko, numer) VALUES ('".$d[0]."','".$d[1]."','".trim($d[2])."'");
}
if(mysql_error()=="")
{
echo "Dane zostały dodane.";
}
else
{
echo "Dane nie zostały dodane. Błąd: ".mysql_error();
}
?>[/php:1:5a9fce44fc]
adwol
Cytat
ale to nic nie dalo sad.gif Czy zabieram sie do tego niewlasciwie?? Co robie zle? A moze ktos wie jak to sie dokladnie robi??

O ile wiem to nie ma w MySQLu komendy COPY. Spróbuj tak:
[sql:1:5b8f7f0ba0]LOAD DATA INFILE 'c:plik.txt' INTO TABLE tab FIELDS TERMINATED BY '|' LINES TERMINATED BY 'n';[/sql:1:5b8f7f0ba0]
Ew. gdyby nie działało zamień sobie n na rn bo nie wiem jak pod windowsem to zostanie zinterpretowane.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.