0

次のエラーが表示されます。

無効なクエリ: SQL 構文にエラーがあります。1 行目の 'INET_ATON('188.92.xx')' 付近で使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

データベースに IP アドレスを挿入しようとしています。列のタイプは次のとおりです。

「LastIP int(10) 符号なし 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);

それの何が問題なのですか?

4

2 に答える 2

4

私が間違っていなければ、値リストは括弧内にカプセル化する必要があります

于 2013-11-05T19:47:38.697 に答える
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_*このリンクは、機能に役立つはずですmysqli_*

于 2013-11-05T19:50:10.193 に答える