Intereting Posts
Как добавить разрывы строк в RSS-каналах? Закругленные углы на изображениях с помощью PHP? Реализация PHP $ _SESSION PHP: преобразование целочисленного числа 64 бит в строку Как установить цвет пикселя с помощью imagick для php (imagemagick)? Сервер отправил события, но с большой задержкой Сообщение. Настроенное соединение с базой данных является постоянным. Aborting Эффективно найти вложенный элемент массива PHP на основе значения атрибута php mail () отправлено две копии Codeigniter – одна услуга с несколькими точками доступа, субдоменами, htaccess Codeigniter escapeshellarg () отключен по соображениям безопасности Как подавать данные серии, которые имеют значения оси х и y в линейных диаграммах? WooCommerce – добавление пользовательской цены на каждый товар в корзине Symfony2 FOSUserBundle, расширяющая регистрационную форму, вызывает дублирование электронной почты для подтверждения MySQL: добавьте в несколько таблиц в одном запросе с помощью BEGIN & COMMIT

Ошибка MySQL: у вас есть ошибка в синтаксисе SQL

Я получаю это сообщение об ошибке от mySQL:

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 'key,time) VALUES ('FreeTest','86400')' at line 2 

Вот код:

 if ((isset($_POST['key'])) && (isset($_POST['days']))) { $key = mysql_escape_string($_POST['key']); $days = mysql_escape_string($_POST['days'] * 86400); $add = "INSERT INTO licence (key,time) VALUES ('$key','$days')"; $addkey = mysql_query($add); } 

Столбец с именем KEY , который является одним из имен столбцов, является зарезервированным ключевым словом , вам нужно сбежать с обратными тактами, чтобы вы не получили синтаксическую ошибку, TIME также является зарезервированным keyowrd, но mysql разрешает использовать его без обратных ссылок ,

 INSERT INTO licence (`key`,time) VALUES ('$key','$days') 
  • Список зарезервированных ключевых слов MySQL

В качестве побочного элемента запрос уязвим с помощью SQL Injection если значение (значения) переменных было получено извне. Пожалуйста, ознакомьтесь с приведенной ниже статьей, чтобы узнать, как ее предотвратить. Используя PreparedStatements вы можете избавиться от использования одинарных кавычек вокруг значений.

  • Как предотвратить SQL-инъекцию в PHP?