Задать вопрос
@MrDungeon

Почему выскакивает ошибка #1064 при выполнении SQL запроса INSERT INTO?

Есть php скрипт, выполняющий запрос, добавляющий данные в БД (таблица price) из файла price.txt. При выполнении INSERT INTO `price` VALUES выдается ошибка:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''Poi',2,1000,1500,2000,4000)' at line 1

Файл price.txt содержит данные в таком виде:

'Poi',2,1000,1500,2000,4000,

Вот полностью код php скрипта:
<?
include "connection.php";

$arr = file("price.txt");

$query = "INSERT INTO `price` VALUES ";
$i = 1;
foreach($arr as $line)
{
	$number = explode(",", $line);
	$order = "($i,";
	foreach($number as $num)
	{
		$order .= "$num,";
	}
	$order = substr($order,0,strlen($order) - 3).")";
	$query .= "$order,";
	$i++;
}
$query = substr($query,0,strlen($query) - 1);
if(!mysql_query($query))
{
	echo $query."<br>";
	echo "Oshibka - ".mysql_error();
}
?>


Создание таблицы:
CREATE TABLE `price` (
`N` int not null auto_increment,
`title` char(200) not null,
`duration` int not null,
`localsum` char(100) not null,
`regionsum` char(100) not null,
`rfsum` char(100) not null,
`intersum` char(100) not null,
INDEX(`N`)
) ENGINE=MyISAM DEFAULT CHARSET="utf8";

Сразу скажу, что я уже много искал, ничего из найденного мне не помогло (таблицу пересоздавал, литералы стоят в ' ', название таблицы взято в ``, даже указывал все параметры - все одинаково, ошибка не уходит). Если ' ' убрать, то возникает ошибка Unknown column 'Poi' in 'field list'.

***************************************************
Проблема решена, достаточно было изменить кодировку файла price.txt на ANSI 1251. Спасибо за помощь!
  • Вопрос задан
  • 54087 просмотров
Подписаться 2 3 комментария
Подписчики вопроса 2 К ответам на вопрос (6)