Good day. I'm trying to organize the import of CSV in MySql but there are problems with the encoding. All records except for Latin and numerals are stored with krakozyabrami. Tell me how to solve the problem? Below is the code.

 $connect = mysql_connect("localhost","admin","12345") or die('No connection to server'); mysql_query('SET NAMES utf8'); mysql_select_db("12345",$connect) or die('No connection to DB!'); $max_file_size = 5; // Максимальный размер файла в МегаБайтах if($_POST['update']=='ok') { // СТАРТ Загрузка файла на сервер if($_FILES["filename"]["size"] > $max_file_size*1024*1024) { echo 'Максимальный размер файла '.$max_file_size.' Mb!'; include('file_upload.php'); exit; } if(copy($_FILES["filename"]["tmp_name"],$path.$_FILES["filename"]["name"])) { echo("Фаил "."<b>".$_FILES["filename"]["name"]."</b>"." Был успешно загружен"); } else { echo 'Ошибка загрузки'; include('file_upload.php'); exit; } $file = fopen('php://memory', 'w+'); fwrite($file, iconv('CP1251', 'UTF-8', file_get_contents($_FILES["filename"]["name"]))); rewind($file); mysql_query("TRUNCATE TABLE `ppppp`"); // Очистка старой таблицы $r = 0; // это строки в файле while (($row = fgetcsv($file, 40000, ";")) != FALSE) // $file - имя файла; 1000 - длина; ,(запятая) - это разделитель полей { $r++; if($r == 1) {continue;} // Не дает записать в БД первую строку (бывает так, что первая строка используется для заголовков) $ins="INSERT INTO ppppp (w,ww,www,wwww,wwwww) VALUES ('$row[0]', '$row[1]', '$row[2]', '$row[3]', '$row[4]')"; mysql_query($ins); //echo mysql_errno() . ": " . mysql_error(); // это вывод результата. если че, то можно закоментить } fclose($file); } 

Table in UTF-8 base too.

  • Thank you all clear the alarm figured out. - alexsis20102
  • @ alexsis20102, would write an answer for the order - xEdelweiss

1 answer 1

I just missed one moment for which, in principle, I am ashamed of Pts ... I did not want to write. In general, the base in the utf 8 table is also in the utf 8. And the cells were in windows-1251 ....