【发布时间】:2015-05-14 19:43:22
【问题描述】:
在将用户添加到数据库之前,我正在执行查询以检查用户是否存在。如果该结果返回,则死亡并回显“用户名已存在”,但如果返回为空,则将新用户添加到数据库中。
出于某种原因,它只是向数据库添加了一个新用户。
//If post was
if (isset($_POST['submit'])) {
// Check if username is blank
if (!isset($_POST['username']) || empty($_POST['username'])) {
echo "Username was blank<br />";
die();
} else {
$username = mysqli_real_escape_string($connection, $_POST['username']);
}
// Check if password is blank
if (!isset($_POST['password']) || empty($_POST['password'])) {
echo "Password was blank<br />";
die();
} else {
$password = mysqli_real_escape_string($connection, $_POST['password']);
$password2 = md5($password);
//echo $password;
}
// Check if email is blank
if (!isset($_POST['email']) || empty($_POST['email'])) {
echo "Email was blank<br />";
die();
} else {
$email = mysqli_real_escape_string($connection, $_POST['email']);
//$password = md5($password);
//echo $password;
}
//Check to see if username alread exsists
$query_check = "SELECT * FROM users WHERE user = '$username' LIMIT 1";
$result_check = mysqli_query($connection, $query_check);
if(count(mysqli_fetch_array($result_check)) === 1) {
echo "Username exists.";
die();
} else {
$query = "INSERT INTO users (user, pass, email) VALUES ('$username','$password2','$email');";
$result = mysqli_query($connection, $query);
if($result){ // returned TRUE, e.g. in case of a DELETE sql
$_SESSION["username"] = $username;
header("Location: ../profile.php");
} else { // returned FALSE
//echo "Error: " . mysqli_error($connection);
echo "Error during register <a href='../register.php'>Back To Register</a>";
die();
}
}
} else {
header("Location: ../index.php");
}
【问题讨论】:
-
首先,这对你没有帮助
mysql_error()使用mysqli_error($connection) -
请告诉我
$username不只是从$_POST['username']之类的东西得到的 -
php中没有这个功能
mysqli_fetch_array -
@Alex Oh really?
-
@M0n5terBunny 在您的原始问题中您没有使用计数。用答案的内容来编辑您的问题通常是不可接受的。那是解决方案吗?即使您添加了计数,您的用户是否仍然插入?