powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Phpmyadmin и php. Ошибка в запросе к БД.
7 сообщений из 7, страница 1 из 1
Phpmyadmin и php. Ошибка в запросе к БД.
    #39974737
Pavll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Делаю парсинг сайта.
Создал скрипт, задачи которого: спарсить названия, описания и изображения с сайта о рыбалке, а также создать записи в базе данных.
Частично скрипт работает: изображения скачиваются, база данных заполняется. Но, по-видимому есть какая-то ошибка в коде, из-за которой скрипт останавливает свою работу и до конца не скачивает контент.
В браузере выводится следующее:
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 'северной широты рыба судак встречается ред�' at line 1

В скрипте я делаю такой запрос к базе данных:
Код: php
1.
2.
3.
4.
if(empty($data)){
        $query="INSERT INTO content2 SET name='".$name."', text='".$text."',img = 'image/".$filename.".jpg', data=NOW() ";
        mysqli_query($link,$query)or die(mysqli_error($link));
    }


Скажите, пожалуйста, где и в чём ошибка?
...
Рейтинг: 0 / 0
Phpmyadmin и php. Ошибка в запросе к БД.
    #39974741
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavll,

Видимо, в исходных данных попадается двойная кавычка и ее надо экранировать.
Но это задача PHP или на чем этом скрипт написан.

Чтобы проверить, что MySQL реагирует правильно, сделайте отладочный вывод переменной $query перед выполнением запроса.
...
Рейтинг: 0 / 0
Phpmyadmin и php. Ошибка в запросе к БД.
    #39974779
Pavll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, сейчас буду пробовать.
...
Рейтинг: 0 / 0
Phpmyadmin и php. Ошибка в запросе к БД.
    #39974790
Pavll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft, проблему решил следующим образом - поместил $text в функцию addslashes() в запросе.
Строка приняла вид:

Код: php
1.
2.
3.
4.
if(empty($data)){
        $query="INSERT INTO content2 SET name='".$name."', text='".addslashes($text)."',img = 'image/".$filename.".jpg', data=NOW()";
        mysqli_query($link,$query)or die(mysqli_error($link));
    }
...
Рейтинг: 0 / 0
Phpmyadmin и php. Ошибка в запросе к БД.
    #39974804
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavll,

$name не надо так же преобразывывать?
...
Рейтинг: 0 / 0
Phpmyadmin и php. Ошибка в запросе к БД.
    #39974811
Pavll
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft
Pavll,

$name не надо так же преобразывывать?


Поскольку больше ошибок никаких не выводится,то я подумал, что преобразовать $text будет достаточным.

Знаю, что есть, например, функция mysqli_real_escape_string для подобной задачи.

Вообще, как лучше всего в подобных ситуациях делать запрос: через addslashes, mysqli_real_escape_string, может ещё как-то?
...
Рейтинг: 0 / 0
Phpmyadmin и php. Ошибка в запросе к БД.
    #39975280
Melkij
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Через prepared statements api.

Pavll
Поскольку больше ошибок никаких не выводится,то я подумал, что преобразовать $text будет достаточным.

Просто классическая, прямо сказать эталонная, SQL инъекция.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Phpmyadmin и php. Ошибка в запросе к БД.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]