2014-06-17 160 views
0

這是我的代碼,但它不工作;怎麼了?如何用PHP檢查ip是否已經存在於MySQL中?

$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'; 
+1

'$檢查= 「SELECT * FROM IP其中IP = '」 「」 $ _ SERVER [ 「REMOTE_ADDR」]。'; '或'$檢查= 「SELECT * FROM IP其中IP = '」 $ IP。 「'」;'因爲你已經分配一個變量。另外,你的表和列確實被命名爲'ip'? –

+2

你必須把IP地址用單引號括起來。更好地使用帶有佔位符的準備好的語句,並將您的值綁定到此佔位符以避免sql注入。 – VMai

回答

0

該ip不是一個數字,它是一個文本(或varchar)。這就是爲什麼你必須使用:

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

+0

確定現在work.but我使用兩個檢查:用戶名,ip。但不能一起工作 – user3742472

+0

@ user3742472:這是一個簡單的邏輯「AND」。請考慮使用帶有佔位符的準備好的語句。它會在稍後爲你節省一些頭痛。 – VMai

+0

http://tinypic.com/r/289zd07/8,該如何解決? – user3742472

0

我認爲,如果你只需要得到計數使用COUNT()

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