PDO - 未捕获的PDOException:SQLSTATE [23000]:完整性约束违规[重复]

问题描述 投票:-1回答:1

如何解决这个问题?

未捕获的PDOException:SQLSTATE [23000]:完整性约束违规:1062重复条目

我在My Table上使用UNIQUE KEY

CREATE TABLE `blog` (
  `id` int NOT NULL AUTO_INCREMENT,
  `title` varchar(100) NOT NULL,
  `str` varchar(100) NOT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `title` (`title`),
  UNIQUE KEY `str` (`str`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

如果我多次输入相同的数据,我会收到此错误

如果我创建没有UNIQUE KEY的数据,它运行良好

我的PDO插入代码

$sql = "INSERT INTO blog(title,str) VALUES(:title,:str)";
 $stmt = $DBcon->prepare($sql);
 $stmt->bindparam(':title', $title,PDO::PARAM_STR);
 $stmt->bindparam(':str', $str,PDO::PARAM_STR);
 $stmt->execute();

如果我删除$stmt->execute(); UNIQUE KEY概念运作良好

我试过MYSQLI它没有任何问题但是在PDO中我得到了这个错误

php mysql
1个回答
0
投票

你已经为unique keytitle定义了str所以它不允许在这个字段中插入duplicate value

 UNIQUE KEY `title` (`title`),
 UNIQUE KEY `str` (`str`)

UNIQUE约束确保列中的所有值都不同。

UNIQUE和PRIMARY KEY约束都为一列或一组列的唯一性提供了保证。

PRIMARY KEY约束自动具有UNIQUE约束。

© www.soinside.com 2019 - 2024. All rights reserved.