Ошибка - 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 'КИТАЙ","Втулки стабилизатора" ),(133,"Втулка стабилизатора","7M0511413A","1.jpg' at line 130
(У Вас есть ошибка в Вашем синтаксисе SQL; проверьте руководство, которое соответствует Вашей версии сервера MySQL для правильного синтаксиса, чтобы использовать рядом) - что это значит.
при передачи через .txt - могут ли данные содержать (. , / - : ;)? - может в этом проблема?
Спустя 8 минут, 50 секунд (22.12.2010 - 11:37) kovaldm написал(а):
Запрос покажи.
Спустя 4 минуты, 48 секунд (22.12.2010 - 11:41) RuslanMRP написал(а):
<?php
// Устанавливаем соединение с базой данных
include "opt.php";
// Помещаем содержимое файла в массив $arr
// Одна строка файла - один элемент массива
$arr = file("text.txt");
// В цикле производим разбор каждой строки
// формируем многострочный INSERT-запрос
$sql = "INSERT INTO PRICELIST VALUES ";
$i = 1;
foreach($arr as $line)
{
// Разбиваем строку по запятой
$number = explode(",",$line);
// Уничтожаем последний элмемент с комментарием
unset($number[13]);
// Формируем строку многострочного INSERT (1,2,...,10)
$order = "($i,";
foreach($number as $num)
{
$order .= "$num,";
}
// Удаляем последнюю лишнюю запятую и
// добавляем закрывающую скобку
$order = substr($order,0,strlen($order) - 1).")";
$sql .= "$order,";
$i++;
}
// Удаляем последнюю лишнюю запятую и
// добавляем закрывающую скобку
$sql = substr($sql,0,strlen($sql) - 1);
// Выполняем SQL-запрос
if(!mysql_query($sql))
{
echo $sql."<br>";
echo "Ошибка - ".mysql_error();
}
else {echo "БД загружена успешно!";}
?>
Спустя 2 минуты, 51 секунда (22.12.2010 - 11:44) kovaldm написал(а):
Все что попадает в запрос из файла обрабатывай функцией mysql_real_escape_string().
Спустя 5 минут, 4 секунды (22.12.2010 - 11:49) RuslanMRP написал(а):
как это сделать? помогите пожалуйста!
Спустя 3 минуты, 30 секунд (22.12.2010 - 11:53) kovaldm написал(а):
Куда у тебя попадает содержимое файла знаешь?
Спустя 2 минуты, 3 секунды (22.12.2010 - 11:55) divine266 написал(а):
вот так попробуй)
$order = mysql_real_escape_string(substr($order,0,strlen($order) - 1)."))";
Спустя 4 минуты, 12 секунд (22.12.2010 - 11:59) RuslanMRP написал(а):
вот передача :
Вот ошибка:
INSERT INTO PRICELIST VALUES (1,\"Опора шаровая нижняя\",\"J15008\",\"1.jpg\",\"30 000\",\"шт\",\"Опора шаровая нижняя J15008 Опора шаровая нижн MITSUBISHI: CARISMA 95-, COLT 88-, ECLIPSE 90-, GALANT 88-\",\"ПОЛЬША\",\"\"\r\n),(2,\"Тяга стабилизатора передняя\",\"J65009\",\"1.jpg\",\"30 000\",\"шт\",\"Тяга стабилизатора передняя J65009 Тяга стабилизатора передн MITSUBISHI: CARISMA 95-\",\"ПОЛЬША\",\"\"\r\n), ...............
Вот ошибка:
Ошибка - 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 '\"Опора шаровая нижняя\",\"J15008\",\"1.jpg\",\"30 000\",\"шт\",\"Опора шаровая ' at line 1
Спустя 25 секунд (22.12.2010 - 11:59) kovaldm написал(а):
divine266
Ага - и обработаются все символы, которые обрабатывать не нужно.
Ага - и обработаются все символы, которые обрабатывать не нужно.
Спустя 42 секунды (22.12.2010 - 12:00) divine266 написал(а):
я исправил уже..заметил свою ошибку, оп или опять не правильно
Спустя 1 минута, 25 секунд (22.12.2010 - 12:02) kovaldm написал(а):
RuslanMRP
Я же дал наводку, куда смотреть.
Я же дал наводку, куда смотреть.
Спустя 21 секунда (22.12.2010 - 12:02) RuslanMRP написал(а):
kovaldm
Подскажи как? пожалуйста!
Подскажи как? пожалуйста!
Спустя 1 минута, 14 секунд (22.12.2010 - 12:03) RuslanMRP написал(а):
вот это?
$order = substr($order,0,strlen($order) - 1).")";
Спустя 52 секунды (22.12.2010 - 12:04) divine266 написал(а):
$order = mysql_real_escape_string(substr($order,0,strlen($order) - 1)).")";
ты так пробовал? или как я первый раз писал?
Спустя 4 минуты, 22 секунды (22.12.2010 - 12:08) RuslanMRP написал(а):
divine266
на первое твое - я написал ошибки выше.
сейчас написал как ты сказал:
ошибка:
на первое твое - я написал ошибки выше.
сейчас написал как ты сказал:
<?php
// Устанавливаем соединение с базой данных
include "opt.php";
// Помещаем содержимое файла в массив $arr
// Одна строка файла - один элемент массива
$arr = file("text.txt");
// В цикле производим разбор каждой строки
// формируем многострочный INSERT-запрос
$sql = "INSERT INTO PRICELIST VALUES ";
$i = 1;
foreach($arr as $line)
{
// Разбиваем строку по запятой
$number = explode(",",$line);
// Уничтожаем последний элмемент с комментарием
unset($number[13]);
// Формируем строку многострочного INSERT (1,2,...,10)
$order = "($i,";
foreach($number as $num)
{
$order .= "$num,";
}
// Удаляем последнюю лишнюю запятую и
// добавляем закрывающую скобку
$order = mysql_real_escape_string(substr($order,0,strlen($order) - 1).")");
$sql .= "$order,";
$i++;
}
// Удаляем последнюю лишнюю запятую и
// добавляем закрывающую скобку
$sql = substr($sql,0,strlen($sql) - 1);
// Выполняем SQL-запрос
if(!mysql_query($sql))
{
echo $sql."<br>";
echo "Ошибка - ".mysql_error();
}
else {echo "БД загружена успешно!";}
?>
ошибка:
Ошибка - 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 '\"Опора шаровая нижняя\",\"J15008\",\"1.jpg\",\"30 000\",\"шт\",\"Опора шаровая ' at line 1
Спустя 18 секунд (22.12.2010 - 12:09) kovaldm написал(а):
Все гораздо проще.
medvejya_usluga.php:
medvejya_usluga.php:
$arr = file("text.txt");
$arr = array_map("mysql_real_escape_string", $arr);
...
Спустя 11 минут, 12 секунд (22.12.2010 - 12:20) RuslanMRP написал(а):
kovaldm
Вставил, бьът туже ошибку!
Вставил, бьът туже ошибку!
<?php
// Устанавливаем соединение с базой данных
include "opt.php";
// Помещаем содержимое файла в массив $arr
// Одна строка файла - один элемент массива
$arr = file("text.txt");
$arr = array_map("mysql_real_escape_string", $arr);
// В цикле производим разбор каждой строки
// формируем многострочный INSERT-запрос
$sql = "INSERT INTO PRICELIST VALUES ";
$i = 1;
foreach($arr as $line)
{
// Разбиваем строку по запятой
$number = explode(",",$line);
// Уничтожаем последний элмемент с комментарием
unset($number[13]);
// Формируем строку многострочного INSERT (1,2,...,10)
$order = "($i,";
foreach($number as $num)
{
$order .= "$num,";
}
// Удаляем последнюю лишнюю запятую и
// добавляем закрывающую скобку
$order = substr($order,0,strlen($order) - 1).")";
$sql .= "$order,";
$i++;
}
// Удаляем последнюю лишнюю запятую и
// добавляем закрывающую скобку
$sql = substr($sql,0,strlen($sql) - 1);
// Выполняем SQL-запрос
if(!mysql_query($sql))
{
echo $sql."<br>";
echo "Ошибка - ".mysql_error();
}
else {echo "БД загружена успешно!";}
?>
Спустя 6 минут, 34 секунды (22.12.2010 - 12:26) kovaldm написал(а):
Выведи на экран запрос.
// добавляем закрывающую скобку
echo $sql;
Спустя 19 минут, 32 секунды (22.12.2010 - 12:46) RuslanMRP написал(а):
INTO PRICELIST VALUES (1,\"Опора шаровая нижняя\",\"J15008\",\"1.jpg\",\"30 000\",\"шт\",\"Опора шаровая нижняя J15008 Опора шаровая нижн MITSUBISHI: CARISMA 95-, COLT 88-, ECLIPSE 90-, GALANT 88-\",\"ПОЛЬША\",\"\"\r\n),(2,\"Тяга стабилизатора передняя\",\"J65009\",\"1.jpg\",\"30 000\",\"шт\",\"Тяга стабилизатора передняя J65009 Тяга стабилизатора передн MITSUBISHI: CARISMA 95-\",\"ПОЛЬША\",\"\"\r\n),............
Спустя 16 минут, 41 секунда (22.12.2010 - 13:03) kovaldm написал(а):
PRICELIST VALUES
Здесь чего-то не хватает.
Вот это нужно заключить в апострофы - остальное аналогично.
\"Опора шаровая нижняя\"
Спустя 1 минута, 44 секунды (22.12.2010 - 13:04) RuslanMRP написал(а):
Вот что у меня в текстовом:
"Опора шаровая нижняя","J15008","1.jpg","30 000","шт","Опора шаровая нижняя J15008 Опора шаровая нижн MITSUBISHI: CARISMA 95-, COLT 88-, ECLIPSE 90-, GALANT 88-","ПОЛЬША",""
"Тяга стабилизатора передняя","J65009","1.jpg","30 000","шт","Тяга стабилизатора передняя J65009 Тяга стабилизатора передн MITSUBISHI: CARISMA 95-","ПОЛЬША",""
"Фильтр воздушный","TA8038","1.jpg","55 000","шт","Фильтр воздушный TA8038 Фильтр воздушный CHEVROLET: Suburban K1500 96-00, Tahoe 96-00 \ GMC: Yukon 96-00","КАНАДА",""
..........
"Опора шаровая нижняя","J15008","1.jpg","30 000","шт","Опора шаровая нижняя J15008 Опора шаровая нижн MITSUBISHI: CARISMA 95-, COLT 88-, ECLIPSE 90-, GALANT 88-","ПОЛЬША",""
"Тяга стабилизатора передняя","J65009","1.jpg","30 000","шт","Тяга стабилизатора передняя J65009 Тяга стабилизатора передн MITSUBISHI: CARISMA 95-","ПОЛЬША",""
"Фильтр воздушный","TA8038","1.jpg","55 000","шт","Фильтр воздушный TA8038 Фильтр воздушный CHEVROLET: Suburban K1500 96-00, Tahoe 96-00 \ GMC: Yukon 96-00","КАНАДА",""
..........
Спустя 14 минут (22.12.2010 - 13:18) kovaldm написал(а):
Если кавычки в базе не нужны, то заменяй их на апострофы.
Укажи в запросе последовательность полей в таблице после ее имени.
Укажи в запросе последовательность полей в таблице после ее имени.
Спустя 7 минут, 7 секунд (22.12.2010 - 13:26) RuslanMRP написал(а):
Может это вам поможет в файле у меня где-то около 3000 записей. Если я все передаю - ошибка, если передовать по несколько записей - то все нормально - но это без вашей $arr = array_map("mysql_real_escape_string", $arr);
Если же с вашей, то бъет всегда ошибку
Если же с вашей, то бъет всегда ошибку
Спустя 3 часа, 12 минут, 31 секунда (22.12.2010 - 16:38) kovaldm написал(а):
Я бы посоветовал разобраться для чего нужна функция mysql_real_escape_string(), тогда будет понятно почему появляется ошибка и как ее избежать.
Спустя 2 минуты, 13 секунд (22.12.2010 - 16:40) RuslanMRP написал(а):
Я уже разобрался! Спасибо!