这个问题在这里已有答案:
如何解决这个问题?
未捕获的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中我得到了这个错误
你已经为unique key
和title
定义了str
所以它不允许在这个字段中插入duplicate value
UNIQUE KEY `title` (`title`),
UNIQUE KEY `str` (`str`)
UNIQUE约束确保列中的所有值都不同。
UNIQUE和PRIMARY KEY约束都为一列或一组列的唯一性提供了保证。
PRIMARY KEY约束自动具有UNIQUE约束。