Sel*_*oek 1 php mysql database ip
我有一个数据库,里面有一个名为'IP'的表.它有2列Id(int11)和ip(varchar15),并与值的行:id 1, ip 127.0.0.1
现在回到PHP我有以下内容:
$ip = $_SERVER['REMOTE_ADDR'];
$query = "SELECT * FROM ip WHERE ip='$ip'";
if(mysql_query($query)) {
echo "Ip is already in database";
}
else {
echo "Ip is not in database";
}
Run Code Online (Sandbox Code Playgroud)
现在我遇到的问题是如果我改变IP说if-statement仍然变为TRUE: 125.0.0.1
我一直试图将它修复2个小时,但仍然无法弄清楚我做错了什么.
mysql_query()如果查询执行成功,即使没有结果,也不会返回false.请尝试使用mysql_num_rows():
$ip = mysql_real_escape_string($_SERVER['REMOTE_ADDR']);
$query = "SELECT * FROM ip WHERE ip='$ip'";
$result = mysql_query($query);
if (mysql_num_rows($result) > 0) {
echo "Ip is already in database";
}
else {
echo "Ip is not in database";
}
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我添加mysql_real_escape_string了REMOTE_ADDRvar,你应该总是清理你的输入:)
| 归档时间: |
|
| 查看次数: |
2204 次 |
| 最近记录: |