无效的查询,在'INET_ATON('IP')'附近使用的语法

时间:2013-11-05 19:45:38

标签: php mysql

我收到了这个错误:

  

查询无效:您的SQL语法出错;检查手册   对应于您的MySQL服务器版本,以获得正确的语法   在第1行'INET_ATON('188.92.x.x')附近使用

尝试在数据库中插入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 个答案:

答案 0 :(得分:4)

如果我没有弄错的话,

您的值列表应该封装在括号内

答案 1 :(得分:0)

你应该试试这个:

$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_* This link来帮助您使用mysqli_*函数。