我是一个相当新的PHP编码,并遇到了一个问题,我觉得很简单。我试图捕获访问我的网站并将其存储在我的数据库中的任何人的IP地址。代码如下,我甚至不确定代码是否可行但我确实得到以下错误解析错误:语法错误,第29行意外的T_INC,我将在代码中突出显示:
$ip = $_SERVER['HTTP_CLIENT_IP'];
$query="SELECT * FROM ip";
$result = mysql_query($query);
$num = mysql_numrows($result);
$i = 1;
$found=false;
while(($i - 1) < $num){
$selection = mysql_query("SELECT ip FROM ip WHERE id=$i");
$tip = mysql_fetch_assoc($selection);
if($tip == $ip){
$found = true;
}
i++; //This is line 29
}
if($found == false){
$sql = "INSERT INTO `rowley_blog`.`ip` (`ip`) VALUES ('$ip');";
mysql_query($sql);
mysql_close();
}
答案 0 :(得分:7)
您需要使用$
为变量添加前缀,因此它是$i++
。
答案 1 :(得分:2)
应该是这样的:
$i++;
答案 2 :(得分:1)
您需要在所有变量之前加上一个美元符号 - 应该是
$i++;
答案 3 :(得分:1)
除了语法错误之外:这段代码似乎让我感到震惊。这不是一样的:
$ip = $_SERVER['HTTP_CLIENT_IP'];
mysql_query("REPLACE INTO `ip` (`ip`) VALUES ('" . mysql_real_escape_string($ip) . "')");
记住:好的代码是短代码;)
此外:如果您刚刚开始编写PHP代码,请不要开始使用mysql_
扩展名。而是使用PDO:
$ip = $_SERVER['HTTP_CLIENT_IP'];
$db->query("REPLACE INTO `ip` (`ip`) VALUES ('" .$db->quote($ip) . "')");