Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/76.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 停止SQL数据库中同一行的两个字段中的重复项_Php_Sql_Database_Login_Duplicates - Fatal编程技术网

Php 停止SQL数据库中同一行的两个字段中的重复项

Php 停止SQL数据库中同一行的两个字段中的重复项,php,sql,database,login,duplicates,Php,Sql,Database,Login,Duplicates,我正在为我的网站创建一个注册表系统。每个报名表都有一个ID号。当用户注册时,它会将用户名和ID号发送到数据库。但是,我希望停止重复条目,以便同一用户只能注册一次事件。我不能在SQL查询中使用WHERE语句,我只是想知道解决这个问题的最佳方法是什么。我不能使用主键或唯一键,因为它们只能注册一个事件,或者只能注册一个事件。提前谢谢 这是页面的代码 <?php session_start(); $user = $_POST['username']; $id = $_POST['id']; i

我正在为我的网站创建一个注册表系统。每个报名表都有一个ID号。当用户注册时,它会将用户名和ID号发送到数据库。但是,我希望停止重复条目,以便同一用户只能注册一次事件。我不能在SQL查询中使用WHERE语句,我只是想知道解决这个问题的最佳方法是什么。我不能使用主键或唯一键,因为它们只能注册一个事件,或者只能注册一个事件。提前谢谢

这是页面的代码

<?php
session_start();

$user = $_POST['username'];
$id = $_POST['id'];

if(empty($user) == FALSE )
{

$con=mysqli_connect("localhost","emuas","flgdls","EMUAS_signUp");
// Check connection
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

$sql="INSERT INTO SIGN_UP_TEST (EventID, User, Comments)
VALUES
('$_POST[id]','$_SESSION[username]','$_POST[comments]')";

if (!mysqli_query($con,$sql))
  {
  die('Error: ' . mysqli_error($con));
  }
  header("Location: {$_SERVER['HTTP_REFERER']}");
  }
  else
  {
  header("Location: {$_SERVER['HTTP_REFERER']}");
  }
?>

您可以添加此唯一密钥。它将使用户只能为每个事件注册一次


altertablesign\u-UP\u-TEST添加唯一索引(EventID,User)

如果使用复合主键(id和用户),则用户可以注册多个事件,但不能注册两次相同的事件


主键(id,用户)

用户只能注册一个事件?或者他们只能为每个事件注册一次?每个事件只注册一次,抱歉,用词不好如果是mySql,你可以创建一个复合唯一密钥。见:,