@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.
Вопрос. А почему? И как это пофиксить?
  • Вопрос задан
  • 139 просмотров
Решения вопроса 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
Нет. У вас просто запрос не корректный. В данных есть одиночная кавычка, которая ломает ваш запрос. Используйте плэйсхолдеры или экранирование данных.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽