2

だから私はこの機能を持っていますadd_log:

function add_log($username, $action) {
    $l_con = new con(); 
    $log_action = $l_con->connect(); 

    // IP to put in database 
    $ip_orig = $this->getIP(); 
    $newa_ip = ip2long($ip_orig);

    $prepara = $log_action->query("INSERT INTO log VALUES ('$username',
        '$action', '$newa_ip', CURDATE(), NOW())");
}

登録フォームで使用すると、完全に機能し、データベースに挿入されます。しかし、ログイン スクリプトやその他の場所では機能しません。私は、私が使用しなかったと確信していた奇妙な名前を入れてみました. ログインスクリプトの外で使用してみましたが、まだ何もありません。

4

2 に答える 2

1

まず、SQL ステートメント内にオプションの列宣言がありません。通常、次のように定義します。

INSERT INTO table (COLUMN1, COLUMN2, COLUMNN) VALUES ('a', 'b', 'n...');

また、 を使用する場合ip2longは、SQL ステートメントで直接実行できる別の方法があることに注意してください。

INSERT INTO log VALUES ('$username', '$action', INET_ATON('$new_ip'), CURDATE(), NOW())

long2ip取得するには、SQL 内で実行するか、SELECT INET_NTOA(IP) as IP ...

于 2012-07-22T02:44:54.360 に答える
0

$username または $action に引用符が含まれていないことを確認してください。クエリが壊れます。また、PDO などを使用することをお勧めします。引用符は無関係になります。

于 2012-07-22T03:10:04.930 に答える