【问题标题】:How to check if ip already exists in MySQL with PHP?如何使用 PHP 检查 ip 是否已存在于 MySQL 中?
【发布时间】:2014-08-07 17:57:53
【问题描述】:

这是我的代码,但它不起作用;怎么了?

$ip = $_SERVER["REMOTE_ADDR"];
$con=mysqli_connect("DBHOST","DBUSER","DBPASS","DBNAME");
$check= 'SELECT * FROM ip WHERE ip = '.$_SERVER["REMOTE_ADDR"];
$rs = $con->query($check);
$data = mysqli_fetch_array($rs, MYSQLI_NUM);
$row_cnt = mysqli_num_rows($rs);
if( $row_cnt > 0 ) echo $row_cnt.' Records found';

【问题讨论】:

  • $check= "SELECT * FROM ip WHERE ip = '".$_SERVER["REMOTE_ADDR"]."'";$check= "SELECT * FROM ip WHERE ip = '".$ip."'"; 因为您已经分配了一个变量。另外,您的表和列确实命名为ip?
  • 您必须用单引号将 IP 地址括起来。最好使用带有占位符的预处理语句,并将您的值绑定到该占位符以避免 sql 注入。

标签: php mysql ip


【解决方案1】:

ip 不是数字,它是文本(或 varchar)。这就是你必须使用的原因:

$check= "SELECT * FROM ip WHERE ip = '{$_SERVER["REMOTE_ADDR"]}'";

【讨论】:

  • 好的现在可以工作了。但我使用两个检查:用户名,ip。但不能一起工作
  • @user3742472:这是一个简单的逻辑AND。请考虑使用带有占位符的准备好的语句。以后可以省去一些麻烦。
【解决方案2】:

我认为,如果您只需要获取计数,请使用 COUNT()

$sql = "SELECT COUNT(*) FROM ip WHERE ip = '".$_SERVER["REMOTE_ADDR"]."'";

【讨论】:

    猜你喜欢
    • 2013-07-02
    • 1970-01-01
    • 2015-03-10
    • 2011-09-19
    • 2012-07-06
    • 1970-01-01
    • 1970-01-01
    • 2014-04-10
    • 1970-01-01
    相关资源
    最近更新 更多