我需要帮助检查用户名是否已经注册或存在于表中。我尝试了很多,但它似乎只是让它成真。
我的代码是:
//=============Configuring Server and Database=======
$host = 'localhost';
$user = 'root';
$password = '';
//=============Data Base Information=================
$database = 'login';
$conn = mysql_connect($host,$user,$password) or die('Server Information is not Correct'); //Establish Connection with Server
mysql_select_db($database,$conn) or die('Database Information is not correct');
//===============End Server Configuration============
//=============Starting Registration Script==========
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);
$email = mysql_real_escape_string($_POST['email']);
$country = mysql_real_escape_string($_POST['country']);
if(isset($_POST['btnRegister'])) //===When I will Set the Button to 1 or Press Button to register
{
$query = "insert into users(username,password,email,country)values('$username','$password','$email','$country')" or die ('username allready exist');
$res = mysql_query($query);
header("location:load.php");
答案 0 :(得分:2)
替换:
$query = "insert into users(username,password,email,country)values('$username','$password','$email','$country')" or die ('username allready exist');
$res = mysql_query($query);
使用:
$query = "insert into users(username,password,email,country)values('$username','$password','$email','$country')" ;
$res = mysql_query($query) or die ('username allready exist');
原始代码的问题在于您正在检查$ query变量是否已正确实例化(我没有理由不这样做)。您需要检查查询是否成功执行,即检查查询调用的结果(在您的情况下为mysql_query)。
请注意,您的生产代码不应使用mysql_ *函数(这不是一种好的做法),而应使用预处理语句。 见这里:[http://uk1.php.net/manual/en/function.mysql-query.php][1]
Please, don't use mysql_*
functions in new code。它们不再被维护and are officially deprecated。请参阅red box?转而了解prepared statements,并使用PDO或MySQLi - this article将帮助您确定哪个。如果您选择PDO here is a good tutorial。