@FrankDelgado

Как записать CSV, содеражщий русские символы в MySQL без пустых полей?

function connect() {
 $connect = mysql_connect('localhost', 'frank', 'delgado') or die(mysql_error());
}
///////////////////////////////////////////////////////////////////////////////////////////////////
function createProduct($Name_product="",$Price="",$Opis_product=""){
connect();
mysql_query("SET NAMES 'utf8'");
mysql_select_db('products');
$new = mysql_query("INSERT INTO products 
    (Name_product, Price, Opis_Product) 
    VALUES('$Name_product','$Price','$Opis_product')");
}
//////////////////////////////////////////////////////////////////////////////////////////
//createProduct("Продукт 3","1233","Описание 1");
 
$handle = fopen("tabl.csv", "r");
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
    $num = count($data);//count - kol-vo elemov massa. (v dannom sluchai 3 stolba)
    //echo "<p> $num poley v stroke $row: <br /></p>\n";
    //$row++;
    for ($c=0; $c < $num; $c++) {
        //echo $data[$c] . "<br />\n";
        if ($c == 0) {
        mysql_query("SET NAMES 'utf8'");
        $name = $data[$c];
        echo $name.' ';
        } elseif ($c == 1) {
        $price = $data[$c];
        echo $price.' ';
        } elseif ($c == 2) {
        $opis = $data[$c];
        echo $opis.'<br />';
        createProduct("$name","$price","$opis");
        }
        }
    
    
}
fclose($handle);


Отдельно от CSV функция createProduct добавляет в MySQL Русские слова баз проблем.
При считывании данных из CSV эта же функиця добавляет в MySQL Английиские слова баз проблем. Но вот вместо русских слов появляются ПУСТЫ ПОЛЯ без каких либо символов.
Код создан в Noteped++ кодировка UTF-8(без BOM). БД, таблица и все строки в ней имеют кодировку utf8_general_ci. ОС - Виндовс 7.
  • Вопрос задан
  • 2398 просмотров
Пригласить эксперта
Ответы на вопрос 3
@krypt3r
mysql_connect();
mysql_select_db();
mysql_query();

Убейте меня семеро. Когда ж это прекратится. Изучайте PDO, блин.
Ответ написан
Комментировать
FanatPHP
@FanatPHP
Чебуратор тега РНР
Ответ написан
Комментировать
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Попробуйте вызвать функцию
createProduct("Продукт 3","1233","Описание 1');DROP DATABASE products;--");

Обнаружите много интересного.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы