-5

我需要帮助检查用户名是否已注册或存在于表中。我尝试了很多,但似乎它只是让它成为现实。

我的代码是:

//=============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");
4

1 回答 1

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]

请不要mysql_*在新代码中使用函数。它们不再被维护并被正式弃用。看到红框了吗?改为了解准备好的语句,并使用PDOMySQLi -本文将帮助您决定使用哪个。如果您选择 PDO,这里有一个很好的教程

于 2013-06-04T11:32:44.100 回答