2017-04-12 93 views
1

我想在我的數據庫中獲得用戶的註冊IP。獲取數據庫中的數據?

我用這個方法:

$securityRes=mysql_query("SELECT * FROM security WHERE userName=".$userRow['name']); 
$securityRow=mysql_fetch_array($securityRes); 

但它返回我什麼,當我使用此代碼:

echo $securityRow['IP'] 

我阻止它,因爲樣1小時,谷歌似乎不想當今成爲我的朋友:/

所以我在這裏求助,希望我會得到一些。

預先感謝您;誠摯的,馬特。

PS - Here is my database | my table "security" :

enter image description here

+0

使用'mysqli_的*''而不是* mysql_'。 –

+0

向我們展示var_dump($ securityRow)的結果;' –

+0

'$ userRow ['name']'的值是多少? –

回答

4

首先使用mysqli_的*而不是mysql_ *。而問題就在這裏:

"SELECT * FROM security WHERE userName=".$userRow['name']; 

name始終是一個字符串,字符串比較,你必須像在單引號中值綁定:

"SELECT * FROM security WHERE userName='".$userRow['name']."'"; 
0

你應該試試這裏的調試。

$securityRes = mysql_query("SELECT * FROM security WHERE userName=".$userRow['name']) or die(mysql_error()); 
$securityRow = mysql_fetch_array($securityRes); 
echo "<pre>"; 
print_r($securityRow); // Check your result 
0

警告的mysql_query,mysql_fetch_array,的mysql_connect等..擴展在PHP 5.5.0中被棄用,並且在PHP 7.0.0中被刪除。 應該使用MySQLi或PDO_MySQL擴展。

1)在你的代碼中,你需要用單引號括起來的字符串。

2)嘗試使用prepared statement or PDO這樣

 //db connection 

    global $conn; 

     $servername = "localhost"; //host name 

     $username = "username"; //username 

     $password = "password"; //password 

     $mysql_database = "dbname"; //database name 

    //mysqli prepared statement 

     $conn = mysqli_connect($servername, $username, $password) or die("Connection failed: " . mysqli_connect_error()); 

     mysqli_select_db($conn,$mysql_database) or die("Opps some thing went wrong"); 

     $stmt = $conn->prepare("SELECT * FROM security WHERE userName=?"); 

     $stmt->bind_param('s',$userRow['name']); 

     The argument may be one of four types: 

      i - integer 
      d - double 
      s - string 
      b - BLOB 
     //change it by respectively 

     $stmt->execute(); 
     $get_result =$stmt->get_result(); 

     $row_count= $get_result->num_rows; 

     if($row_count>0) 
     { 

     print_r($get_result->fetch_assoc()); 

     }