Есть файл csv, в котором некоторые поля содержат символ \.
Этот файл разбирается посредством php и полученные данные заносятся в MySQL таблицу.
include 'connect.php';
$table = "".$prefix."table";
$handle = fopen('php://memory', 'w+');
fwrite($handle, iconv('CP1251', 'UTF-8', file_get_contents('in.csv')));
rewind($handle);
$r = 0;
set_time_limit(0);
while (($row = fgetcsv($handle, 1000, ';', '"')) != FALSE)
{
$r++;
if($r == 1) {continue;} // Не дает записать в БД первую строку
$ins="INSERT INTO $table (`1`, `2`, `3`, `4`, `5`, `6`, `7`, `8`) VALUES ('$row[0]', '$row[1]', '$row[2]', '$row[3]', '$row[4]', '$row[5]', '$row[6]', '$row[9]')";
mysql_query($ins);
if (mysql_errno()) {echo mysql_errno() . '\n' . mysql_error() . '\n';}
}
После заноса данных в таблицу пропадают символы \ (при этом символы / остаются нетронутыми).
Как с эти бороться? Заранее спасибо!
Решил проблему благодаря ILoveYAnny:
меняем Msql запрос на
$ins=sprintf("INSERT INTO $table (`1`, `2`, `3`, `4`, `5`, `6`, `7`) VALUES ('$row[0]', '$row[1]', '$row[2]', '$row[3]', '%s', '$row[5]', '$row[6]')",mysql_real_escape_string($row[4]));
(в моем случае проблема была в $row[4])