Гость
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Phpmyadmin и php. Ошибка в запросе к БД. / 7 сообщений из 7, страница 1 из 1
30.06.2020, 18:17
    #39974737
Pavll
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Phpmyadmin и php. Ошибка в запросе к БД.
Добрый день!
Делаю парсинг сайта.
Создал скрипт, задачи которого: спарсить названия, описания и изображения с сайта о рыбалке, а также создать записи в базе данных.
Частично скрипт работает: изображения скачиваются, база данных заполняется. Но, по-видимому есть какая-то ошибка в коде, из-за которой скрипт останавливает свою работу и до конца не скачивает контент.
В браузере выводится следующее:
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
30.06.2020, 18:29
    #39974741
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Phpmyadmin и php. Ошибка в запросе к БД.
Pavll,

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

Чтобы проверить, что MySQL реагирует правильно, сделайте отладочный вывод переменной $query перед выполнением запроса.
...
Рейтинг: 0 / 0
30.06.2020, 20:22
    #39974779
Pavll
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Phpmyadmin и php. Ошибка в запросе к БД.
Спасибо, сейчас буду пробовать.
...
Рейтинг: 0 / 0
30.06.2020, 21:31
    #39974790
Pavll
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Phpmyadmin и php. Ошибка в запросе к БД.
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
30.06.2020, 22:39
    #39974804
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Phpmyadmin и php. Ошибка в запросе к БД.
Pavll,

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

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


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

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

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

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

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


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