我想在我的数据库中获取用户的注册IP。
我使用这种方法:
$securityRes=mysql_query("SELECT * FROM security WHERE userName=".$userRow['name']);
$securityRow=mysql_fetch_array($securityRes);
但是当我使用这段代码时,它什么都没有回复:
echo $securityRow['IP']
我被封锁了1个小时,Google似乎不想成为我今天的朋友:/
所以我在这里寻求帮助,希望能得到一些帮助。
提前谢谢你;亲切地,马特。
答案 0 :(得分:4)
首先使用mysqli_ *而不是mysql _ * 。问题出在这里:
"SELECT * FROM security WHERE userName=".$userRow['name'];
name
始终是一个字符串,对于字符串比较,您必须将值绑定在单引号中,如:
"SELECT * FROM security WHERE userName='".$userRow['name']."'";
答案 1 :(得分: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
答案 2 :(得分: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());
}