Whats the total number of тs in:
Q: 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
В скрипте я делаю такой запрос к базе данных:
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));
    }

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

A: Нельзя так формировать запрос. Переменные, передаваемые в запрос - нужно предварительно экранировать. Текстовые значения - 100%. Вот пример функции, которая поможет: mysqli_real_escape_string
Вообще, по-хорошему, для предотвращения SQL-инжекта - лучше использовать
$pdo->prepare()
по типу:
$stmt = $pdo->prepare(
  SELECT * FROM blog_posts WHERE YEAR(created) = ? AND MONTH(created) = ?
);
if ($stmt->execute([$_GET[year], $_GET[month]])) {
    $posts = $stmt->fetchAll(\PDO::FETCH_ASSOC);
}

Тогда и ничего esc-апить не придется в добавок. Вот тут по этой теме целая статья.

user
In that passage, there are fifty-four occurrences of the letter "т."
assistant