【问题标题】:If not exists, insert into [duplicate]如果不存在,插入[重复]
【发布时间】:2015-11-08 13:52:43
【问题描述】:

我正在使用社交网络,如果用户名或电子邮件相同,我不想将详细信息输入 MySQL 数据库。

这是我正在使用的 PHP:

if (isset($_POST['username']) && isset($_POST['password'])){

  $datejoined = date('m/d/Y h:i:s a', time());;
  $verified = 0;
  $username = $_POST['username'];
  $email = $_POST['email'];
  $password = $_POST['password'];

  $query = "INSERT INTO `members` (username, password, email, verified, datejoined) 
       VALUES ('$username', md5('$password'), '$email', '0', '$datejoined')";

我们将不胜感激!

【问题讨论】:

标签: php mysql


【解决方案1】:

创建唯一索引以发现重复项。

create unique index unq_members on members(username);
create unique index unq_members on members(email);

然后,在插入时忽略重复项:

INSERT IGNORE INTO `members`(username, password, email, verified, datejoined)
    VALUES ('$username', md5('$password'), '$email', '0', '$datejoined');

或使用:

INSERT INTO `members`(username, password, email, verified, datejoined)
    VALUES ('$username', md5('$password'), '$email', '0', '$datejoined')
    ON DUPLICATE KEY UPDATE username = username;

【讨论】:

  • 注意: IGNORE 部分忽略了更多的东西,而不仅仅是重复插入。 MOREMORE
猜你喜欢
  • 2013-12-22
  • 2019-10-17
  • 2012-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-19
  • 2018-07-03
  • 2013-03-31
相关资源
最近更新 更多