Administracja mojego hostingu postanowiła utrudnić mi życie
blokując polecenie LOAD DATA LOCAL INFILE co się wiąże ze zmianą kodu..
Skrypt już w zasadzie napisałem.. jednak jest pewien problem.
Uploadowany plik CSV wyglądała tak:
Kod
2012-05-10 11:00:03
"00006574";"Tytuł 1";0;36
"00005903";"Tytuł 2";0;14
"00000160";"Tytuł 3";0;4
"00004685";"Tytuł 4";0;5
"00006574";"Tytuł 1";0;36
"00005903";"Tytuł 2";0;14
"00000160";"Tytuł 3";0;4
"00004685";"Tytuł 4";0;5
i był wczytywany właśnie za pomocą LOAD DATA LOCAL INFILE
Na czym polega problem.. otóż jak widać powyżej wartości rozdzielane są za pomocą średnika
oraz pierwsze dwie znajdują się w cudzysłowach..
chodzi o to aby do bazy leciały dane bez tych cudzysłowów ( nie wiem czy poprawnie odmieniłem oO )
w przypadku LOAD DATA sprawa prosta..
$strSql .= "FIELDS TERMINATED BY ';' OPTIONALLY ENCLOSED BY '\"' "; $strSql .= "LINES TERMINATED BY '\r\n' "; $strSql .= "IGNORE 2 LINES ";
po zamianie jednak zgłupiałem..
echo $i.'. INSERT INTO `tabela` VALUES(`'.$Symbol.'`, `'.$Nazwa.'`, `'.$Stan.'`, `'.$Cena.'`)<br/>'; }
hmm
no niby jest preg_replace, ale co w sytuacji kiedy zmienna powinna zawierać cudzysłów np:
w pliku CSV mam
"generał "łotr" "
i chce aby mi usunęło pierwszy i ostatni znak w zmiennej i zwróciło poprostu
generał "łotr"