【发布时间】: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 注入。