不要插入已存在于数据库中的电子邮件?

时间:2014-11-07 16:43:18

标签: php mysql

我在第16行收到错误。 请帮我弄清楚为什么这条线会出错。 代码如下 非唯一电子邮件不会插入表格中,因此我不了解错误。

<?php
  if (isset($_POST['submit']))
        {
            $conn=mysql_connect("localhost","root","");
                  if($conn)
                  {
                      $sql=mysql_select_db("user",$conn)
                      or die("database not found".mysql_error());
                      $fname=$_POST['firstname'];
                      $lname=$_POST['lastname'];
                      $email=$_POST['email'];
                      $age=$_POST['age'];
                      $check=mysql_query("select email from reg where email = '$email'");

                        if(!$check) // if email not insert before then insert  new value into database 
                        {
                      $insert="insert into reg values ('','$fname','$lname','$email','$age') ";
                     $result= mysql_query($insert);
                            if($result)
                            {
                            echo "thank you for information entered";
                            }

                        }
                        else   echo "this email already exist !" ;
                  }
                  else
                      die("server not found".mysql_error());
        }

2 个答案:

答案 0 :(得分:0)

您的代码:

$insert="insert into reg values ('','$fname','$lname','$email','$age') ";

如果第一个字段是PRIMARY数字和AUTOINCREMENT,那么您应该将空字符串''更改为 NULL ,如下所示:

$insert="insert into reg values (NULL,'$fname','$lname','$email','$age') ";

结果为新创建的行获取下一个有效数字

答案 1 :(得分:-1)

我不知道你试图通过这次检查完成什么

$check=mysql_query("select email from reg where email = '$email'");
if ($check) 

但我认为如果您想检查某些内容是否与您的选择请求相匹配,请更好地检查返回的行数

$check=mysql_query("select email from reg where email = '$email'");
$num_rows = mysql_num_rows($check);
if ($num_rows==0) 

{
              $insert="insert into reg values ('','$fname','$lname','$email','$age') ";
             $result= mysql_query($insert);
                    if($result)
                    {
                    echo "thank you for information entered";
                    }

                }
                else   echo "this email already exist !" ;
          }
          else
              die("server not found".mysql_error());
}