Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
试图让PHP检查数据插入中的重复项_Php_Mysql_Select_Insert_Duplicates - Fatal编程技术网

试图让PHP检查数据插入中的重复项

试图让PHP检查数据插入中的重复项,php,mysql,select,insert,duplicates,Php,Mysql,Select,Insert,Duplicates,` ?>` 到目前为止,我的数据库连接还不错,当我到达$doop时 mysql_connect("host","admin","password");//database connection mysql_select_db("dbname"); $order="INSERT INTO members (username, password) VALUES ('$_POST[username]','$_POST[password]')"; $doopquery = mysql_que

` ?>`

到目前为止,我的数据库连接还不错,当我到达$doop时

mysql_connect("host","admin","password");//database connection

mysql_select_db("dbname");


$order="INSERT INTO members (username, password) VALUES ('$_POST[username]','$_POST[password]')";



$doopquery = mysql_query("SELECT username FROM members WHERE username='$_POST[username]' ")

if ($doopquery) {
    echo("Username Taken");
} else {
    $result = mysql_query($order);
    echo("Account Registered");
}
用户名周围缺少“标记”

失踪;在$doopquery结束时,按如下方式操作:

$username=mysql_real_escape_string($_POST['username']);
$doopquery = mysql_query("SELECT username FROM members WHERE username='$username' ");
if(mysql_num_rows($doopquery)==0){
     //username not found
}
else{
      //username already exists
 }

这到底是怎么回事?您可以包括您的错误消息和您的目标吗?只需在数据库中使username列唯一,并捕获errorsDanel,如下面的答案所示,请确保在将数据放入查询之前清理任何用户输入(例如,使用mysql\u real\u escape\u string)。如果不这样做,您将受到一个简单但可能非常有害的SQL注入攻击。如果用户名是迈克的天使?一点解释会很有帮助。你改变了什么?这是如何解决问题的?
$username = mysql_real_escape_string($_POST['username']);
$password = mysql_real_escape_string($_POST['password']);

$query = "SELECT username FROM members WHERE username='{$username}'";
$result = mysql_query($query);
if(mysql_num_rows($result) > 0) {
  echo "Username Already Taken!";
}else{
  $query = "INSERT INTO members (username, password) VALUES ('{$username}','{$password}')";
  if(mysql_query($query)) {
    echo "Account Registered!";
  }else{
    echo "Account Register Failed!";
  }
}