php - 我需要检查,如果用户在数据库中输入相同的用户名或密码,代码需要告诉他们。它已经存在。但它在这里不起作用

标签 php mysql database forms database-connection

<?php
$errors=array();
session_start();
if(!isset($_POST['name']) || empty($_POST['name'])){
$errors[]="enter name";
}

elseif(!isset($_POST['email']) || empty($_POST['email'])){
$errors[]="enter mail id";
}
elseif(!isset($_POST['password']) || empty($_POST['password'])){
$errors[]="enter password";
}

else{
$name=$_POST['name'];
$email=$_POST['email'];
$password=$_POST['password'];

$con=mysql_connect('localhost','root','') or die("failed establishing connection");
$db=mysql_select_db("sam",$con) or die("failed establishing db connection"); 


$query="SELECT * FROM user_account";
$result=mysql_query($query) or die(mysql_error());
$row=mysql_fetch_array($result) or die('errors');


if($row[1]==$name){
echo"username already exists";

}
elseif($row[3]==$email){
echo "Email already exists";

}


else
{



$sql=" INSERT  INTO user_account ('username','password','email') VALUES('$name','$password','$email') " or die(mysql_error());
$result=mysql_query($sql) or die(mysql_error());
if($result)
{
echo "insertion done";

}
else
{
echo "insertion failed";
}
}
}






if(count($errors)>0){
foreach($errors as $err){
echo $err;
}
}  



?>

我需要检查用户输入的用户名是否已存在于数据库中。为此,我添加了 if 循环来检查它。但是每次用户输入相同的用户名时,它都会显示错误消息,但是用户更正错误后,错误消息仍然存在。它没有移动到下一个 elseif 循环。我可以让它工作吗?

最佳答案

您的查询错误,您只是选择了所有存在的用户。您应该选择用户名、密码和电子邮件等于输入的位置,并检查 num 行 1 或 0。

关于php - 我需要检查,如果用户在数据库中输入相同的用户名或密码,代码需要告诉他们。它已经存在。但它在这里不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26525544/

相关文章:

PHP 日期时间错误

MySQL:如何在一个查询中使用分配表连接三个表?

database - 从生产数据库的开发副本中删除敏感数据(有 gem 吗?)

mysql - 暂时禁用约束

php - 如何在 Laravel 中实现数组类型的路由?

php - 此 SQL 查询中的语法错误是什么?

php - 获取大数据时mysql连接超时

php - Klarna 与网上商店的整合

MySQL 将 "ORDER BY"子句应用于 UNION 查询

PHP MySQL 从 ODBC 插入和更新