Задать вопрос
@MrCheatEugene
Человек. Учусь кодить.

Let's Encrypt конфликтует с MySQL?

Есть функция, завёрнутая в try.
Пытаюсь выполнить запрос.
Функция крашится, после чего срабатывает catch.
Вот ошибка:
exception 'mysqli_sql_exception' with message '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 's Encrypt,R3,my-coin.ga,mod_ssl/2.4.29,OpenSSL/1.1.1,TLSv1.3,false,NULL,TLS_CHAC' at line 1' in /var/..../main.php:31

Строка 31:
$link->query("INSERT INTO `log`(`operaion`, `SERVER`, `result`) VALUES ('balance','".implode(",",$_SERVER)."','".implode(",", ($res))."')");

где $link - обьект подключения к MySQL базе данных через mysqli.
Подозреваю что
's Encrypt,R3
это Let's Encrypt.
Вопрос. А почему? И как это пофиксить?
  • Вопрос задан
  • 146 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Решения вопроса 1
delphinpro
@delphinpro Куратор тега PHP
frontend developer
Типичная sql инъекция.
Строки нужно экранировать, прежде чем пихать в базу.
https://www.php.net/manual/ru/mysqli.real-escape-s...
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@Hanneman
' в строке let's encrypt портит запрос, так эта строка в запросе выглядит так: ' let's encypt'.
Читайте про экранирование символов.
Ответ написан
Комментировать
toxa82
@toxa82
Нет. У вас просто запрос не корректный. В данных есть одиночная кавычка, которая ломает ваш запрос. Используйте плэйсхолдеры или экранирование данных.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽