php和mysqli中重复行的困境

php和mysqli中重复行的困境,php,mysql,Php,Mysql,我知道以前有人问过重复的问题,但我的情况略有不同。第一。对于php/mysqli,我是一个真正的新手,所以请确保您的评论是针对一个虚拟对象解释的 好的。。。我有一个与表注册脚本的游戏。效果很好。我还有一个订单脚本和表格。所以有人买了我的游戏。要求他们在购买时使用电子邮件地址。我在游戏注册中有一个电子邮件地址字段。买家必须使用与购买相同的电子邮件地址进行注册 现在是我的困境。我可以让脚本检查电子邮件是否与购买和注册相同,如果不相同,则抛出错误。它还检查users表中是否有重复的用户名。 但是,我不

我知道以前有人问过重复的问题,但我的情况略有不同。第一。对于php/mysqli,我是一个真正的新手,所以请确保您的评论是针对一个虚拟对象解释的

好的。。。我有一个与表注册脚本的游戏。效果很好。我还有一个订单脚本和表格。所以有人买了我的游戏。要求他们在购买时使用电子邮件地址。我在游戏注册中有一个电子邮件地址字段。买家必须使用与购买相同的电子邮件地址进行注册

现在是我的困境。我可以让脚本检查电子邮件是否与购买和注册相同,如果不相同,则抛出错误。它还检查users表中是否有重复的用户名。 但是,我不知道如何阻止向用户表添加重复的电子邮件。 比如说有人买了我的游戏。他们登记了,一切都很好。没有什么能阻止他们将游戏链接发送给朋友并告诉他们使用的电子邮件地址。第二个人可以注册一个新用户名,但当然电子邮件地址是相同的

我需要防止这种情况发生。我可以做任何一个(对照两个表或检查重复项),但不能同时做这两个。我想也许我必须为电子邮件地址创建一个单独的表?但是如果确实存在重复项,那么如何告诉它删除最近的条目

if ($todo == "reg") { 

$buycheck = mysqli_query($connect, "SELECT * FROM $nameTable2 WHERE       email='$email' "); 

$result = mysqli_query($connect, "SELECT * FROM $nameTable WHERE username = '$username'  ");  

   if (!$result) { 
      $msg = ((is_object($connect)) ? mysqli_error($connect) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)); 
      $string = 'valid=0&err=query fail'; 
   }  

   else if (mysqli_num_rows($result)>0) { 
      $msg = ((is_object($connect)) ? mysqli_error($connect) : (($___mysqli_res = mysqli_connect_error()) ? $___mysqli_res : false)); 
      $string = 'valid=0&err=double data'; 

   } 

   else if (mysqli_num_rows($buycheck)== 1 ) {


    mysqli_query($connect, "INSERT INTO $nameTable (id,username,userpass,email)"); 

 $string = 'valid=1';
 }


else {
$string = 'valid=10&err= error: email differs ';
}

}
其中,nameTable2为订单,nameTable为用户

任何帮助都将不胜感激


干杯

你是说这可以工作
mysqli_查询($connect,“插入$nameTable(id,username,userpass,email)”)或者这是“为我填空”?“我不知道如何阻止它向游戏表添加重复的电子邮件”-添加唯一的约束。编辑并按照Michael下面所说的操作。该
INSERT
中缺少
VALUES
子句。。。
$nameTable
表的表定义是什么?请发布
SHOW CREATE TABLE\u TABLE
的输出。例如,您可以在电子邮件列中添加一个唯一的索引,并检查插入时是否有错误。@MichaelBerkowski只需几秒钟lol Edit:如我所说;-)如果
INSERT
(电子邮件已经存在)上存在唯一的约束冲突,您可以检查
mysqli\u query()
的返回值,并且只有在成功时,您才能输出有效的<代码>如果(mysqli_查询($con,“INSERT…”){$string='valid=1';}否则{//invalid message!}