PHP如何检查数据库中的值是否已准备就绪
我正在创建一个注册页面,在检查mysql表中的用户名是否已准备就绪时遇到问题。以下是我使用的代码:PHP如何检查数据库中的值是否已准备就绪,php,mysql,mysqli,Php,Mysql,Mysqli,我正在创建一个注册页面,在检查mysql表中的用户名是否已准备就绪时遇到问题。以下是我使用的代码: $check = mysqli_query($con,"SELECT * FROM users WHERE username='$username'"); if(!empty($check)){ $_SESSION['error'] = "Username allready taken!"; header('Location: ./?page=signup') ; } 有人能帮
$check = mysqli_query($con,"SELECT * FROM users
WHERE username='$username'");
if(!empty($check)){
$_SESSION['error'] = "Username allready taken!";
header('Location: ./?page=signup') ;
}
有人能帮我吗?您应该使用准备好的语句来编写查询。但由于原始mysqli无法与它们一起使用,您最好使用
$userExists = (mysqli_num_rows($check) > 0);
好了,各位,你们没能成功回答我的问题,所以我自己想出来了,这是最后一个问题:
$sql = mysqli_query($con, "SELECT * FROM users
WHERE username='$usr'
LIMIT 1");
if(mysqli_num_rows($sql) == 1){
$_SESSION['error'] = "Username allready taken!";
header('Location: ./?page=signup') ;
}
存在sql注入危险。您需要阅读正在使用的函数(mysqli_query)的手动条目。如果在MySQL中将
username
列设置为UNIQUE
,会发生什么情况?
$sql = mysqli_query($con, "SELECT * FROM users
WHERE username='$usr'
LIMIT 1");
if(mysqli_num_rows($sql) == 1){
$_SESSION['error'] = "Username allready taken!";
header('Location: ./?page=signup') ;
}