使用PHP,IP地址在SQL中存储为0

时间:2014-12-12 20:40:37

标签: php mysql ip

我在本地设计一个网站,我正在测试PHP中的一个函数,它捕获并存储了客户端的ip地址,但我只是得到一个0的值。 代码是:

if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
 } else {
$ip = $_SERVER['REMOTE_ADDR'];
}

然后将ip添加到mysql并使用代码

存储为整数
   $query = "INSERT INTO users (id, email, salt, passhash, regdate, last_login_date,      regip, last_login_ip) VALUES ( NULL, ?, ?, ?, NOW(), NOW(), ?, ?)";

    $stmt = mysqli_prepare($dbc, $query);


    //i Interger
    //d Doubles         
    //s Everything Else


    mysqli_stmt_bind_param($stmt, "sssii", $email, $salt, $passhash, $ip, $ip);

因为我在本地运行网站,或者我错过了一个步骤,该值是否仅为0的原因?

谢谢:)

1 个答案:

答案 0 :(得分:1)

您不应将您的IP地址存储在无符号整数字段中。以varchar格式存储它应该可以解决您的问题。整数期望正常数字,而不是其中包含多个.的数字。