Я получаю это сообщение об ошибке от 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')
В качестве побочного элемента запрос уязвим с помощью SQL Injection
если значение (значения) переменных было получено извне. Пожалуйста, ознакомьтесь с приведенной ниже статьей, чтобы узнать, как ее предотвратить. Используя PreparedStatements
вы можете избавиться от использования одинарных кавычек вокруг значений.