Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > Phpmyadmin и php. Ошибка в запросе к БД.


Автор: Pavl 29.6.2020, 19:57
Добрый день!
Делаю парсинг сайта.
Создал скрипт, задачи которого: спарсить названия, описания и изображения с сайта о рыбалке, а также создать записи в базе данных.
Частично скрипт работает: изображения скачиваются, база данных заполняется. Но, по-видимому есть какая-то ошибка в коде, из-за которой скрипт останавливает свою работу и до конца не скачивает контент.
В браузере выводится следующее: 
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

В скрипте я делаю такой запрос к базе данных:
Код



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));
    }

Скажите, пожалуйста, где и в чём ошибка?

Автор: Akina 29.6.2020, 21:38
Цитата(Pavl @  29.6.2020,  20:57 Найти цитируемый пост)
в чём ошибка?

В использовании mysqli и прямой подстановки параметров вместо PDO и подготовленных запросов.

Автор: Pavl 30.6.2020, 21:28
Проблему решил следующим образом - поместил $text  в функцию addslashes() в запросе.
Строка приняла вид:
Код

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));
    }

Спасибо за помощь!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)