- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Здравствуйте. Прошу подсказать.
так вот в логах ошибка
Можете объяснить, почему?
Спасибо заранее.
Синтаксическая ошибка в запросе
;13636951']Синтаксическая ошибка в запросе
Нет, все таки не понял, где именно. Сперва подумал, скобку забыл закрыть...
Нашел, вероятно поэтому?
надо
Эх, нет, все равно ошибка ((
Выведите ошибку mysql-я, там в ней будет написано, в каком именно месте.
Или выполните тот же запрос в phpMyAdmin.
Или просто выведите этот же запрос, в большинстве случаев этого бывает достаточно, чтобы увидеть косяк.
;13636989']Выведите ошибку mysql-я, там в ней будет написано, в каком именно месте.
Или выполните тот же запрос в phpMyAdmin.
Или просто выведите этот же запрос, в большинстве случаев этого бывает достаточно, чтобы увидеть косяк.
А не подскажете, как выводить ошибку mysql-я в файл, а не на экран? У меня все ошибки пишутся в файл...
Понятно одно - проблему будет найти сложно, так как при запросе непосредственно в phpMyAdmin - все нормально. Видимо в каких то страницах, переменная учавствующая в запросе принимает какой то нехороший вид. У меня там происходит отбор товаров производителя, так вот запрос такого вида
$result22 = mysql_query("SELECT id from `katalog` WHERE `brand`='$brand'");
возможно где то бренд вида Lami'Art правда как с этим бороться, тоже не знаю, т.к. надо найти его товары и просто так удалить из названия знак ' не могу же.
Используйте функции экранирования при передаче переменных в запрос.
Иначе у вас однажды в базе может оказаться что-то совсем "нехорошее".
Чтобы ошибки mysql попадали в файл, их нужно перехватить и передать в обработчик ошибок, который пишет их в файл.
Всё зависит от вашей конкретной реализации.
$res = mysql_query($query) or die(mysql_error());
$res = mysql_query($query);
if(!$res) die(mysql_error());
Отвечаю на вопрос из лички.
Функция экранирования:
http://php.net/manual/ru/function.mysql-real-escape-string.php
(или аналоги MySQLi и PDO)
Если у вас предполагается числовая переменная, вместо экранирования можно просто принудительно преобразовать её в числовой тип:
$var+=0;
в одинарных ковычках переменная?
$result22 = mysql_query("SELECT id from `katalog` WHERE `brand`='" . $brand . "'");
Да перейдите уже на PDO и забудьте этот бред.
в одинарных ковычках переменная?
$result22 = mysql_query("SELECT id from `katalog` WHERE `brand`='" . $brand . "'");
Да. В одинарных.
Знаю глупость, но работает. У меня на входе, в обработчике стоит проверка на пробелы и кавычки.
$prov1 = substr_count($brand, "%20");
$prov2 = substr_count($brand, " ");
$prov3 = substr_count($brand, "'");
Для большей уверенности думаю ещё добавить
$brand = str_replace("=", "", $brand);