Недействительный запрос, синтаксис для использования рядом с 'INET_ATON (' IP ')'

Я получаю эту ошибку:

Неверный запрос: у вас есть ошибка в синтаксисе SQL; проверьте руководство, соответствующее версии сервера MySQL, для правильного синтаксиса для использования рядом с 'INET_ATON (' 188.92.x.x ')' в строке 1

При попытке вставить IP-адрес в базу данных. Тип столбца:

'LastIP int (10) unsigned NOT NULL,'.

Функция для выполнения запроса:

function onNewUser($ip, $hostname, $con)
{
 $query = "INSERT INTO tableMachine (LastIP, LastHostName) VALUES ".
 "INET_ATON('".mysql_real_escape_string($ip, $con)."'), ".
 "'".mysql_real_escape_string($hostname, $con)."'";

 $result= mysql_query($query, $con);
 if (!$result) {
 die('Invalid query: ' . mysql_error());


 }
 }

Я вызываю эту функцию с параметрами:

$ ip = $ _SERVER ['REMOTE_ADDR'];

$ hostname = @gethostbyaddr ($ ip);

onNewUser ($ ip, $ hostname, $ con);

Что с ним не так?

2 ответа

Вы должны попробовать следующее:

$query = "INSERT INTO tableMachine (LastIP, LastHostName) VALUES (".
 "INET_ATON('".mysql_real_escape_string($ip, $con)."'), ".
 "'".mysql_real_escape_string($hostname, $con)."')";

Я просто добавляю скобки для VALUES(...)

Кроме того, как сказал @Shamil, функции mysql_* лишены. Вы должны использовать mysqli_* Эта ссылка должна помочь вам с mysqli_*.


ваш список значений должен быть заключен в круглые скобки, если я не ошибаюсь

licensed under cc by-sa 3.0 with attribution.