我有一个基本的注册脚本,即时通讯编写,我似乎无法修复它的一个小问题。MySQL&PHP,mysqli_num_rows总是返回0
好,这里是代码:
<?php
//MySQLi connection
$con = mysqli_connect("-","-","-","users");
if (mysqli_connect_errno())
{
echo "MySQLi Connection was not established: " . mysqli_connect_error();
}
//Reading the userdata from the registerp.php page
$usr = mysqli_real_escape_string($con,$_POST['username']);
$email = mysqli_real_escape_string($con,$_POST['email']);
$pass_unhashed = mysqli_real_escape_string($con,$_POST['pass']);
$pass = password_hash($pass_unhashed, PASSWORD_DEFAULT);
//Checking if user exists
$check_usr = mysqli_query($con,"SELECT FROM users WHERE user_name = $usr");
if (mysqli_num_rows($con,$check_usr)>=1)
{
echo "This Username already exists";
}
else
{
echo "This Username is available";
}
?>
问题是,我不能得到验证(这样的人不能两次注册相同的名字)一起工作:
$check_usr = mysqli_query($con,"SELECT FROM users WHERE user_name = $usr");
if (mysqli_num_rows($con,$check_usr)>=1)
{
echo "This Username already exists";
}
else
{
echo "This Username is available";
}
始终返回“这个用户名是可用的“,即使我用来测试它的用户(nevondrax)在MySQL表中(它看起来像click )
我可以在那儿动以某种方式? – Nevondrax
特定于编程和软件开发的问题不在话下,请参阅[On-Topic](https://superuser.com.com/help/on-topic)。尝试[所以],但请首先阅读[我如何问一个好问题?](https://stacsuperuser.com.com/help/how-to-ask)。您可以标记您的问题,并请管理员迁移它。 – DavidPostill
你需要手动验证'mysqli_query()'成功了,mysqli不会为你做。一旦你这样做了,你会注意到SQL解析错误。 –