Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/289.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 PDO-未捕获的PDOException:SQLSTATE[23000]:完整性约束冲突_Php_Mysql - Fatal编程技术网

Php PDO-未捕获的PDOException:SQLSTATE[23000]:完整性约束冲突

Php PDO-未捕获的PDOException:SQLSTATE[23000]:完整性约束冲突,php,mysql,Php,Mysql,如何解决这个问题 未捕获PDOException:SQLSTATE[23000]:完整性约束冲突:1062重复项 我在我的桌子上使用唯一的钥匙 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`),

如何解决这个问题

未捕获PDOException:SQLSTATE[23000]:完整性约束冲突:1062重复项

我在我的桌子上使用唯一的钥匙

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;
如果我多次输入相同的数据,就会出现此错误

如果我创建没有唯一键的数据表,它工作得很好

我的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()独特的关键概念运行良好


我在MYSQLI上试过,它可以正常工作,但在PDO中我遇到了这个错误

您已经为
标题
str定义了
唯一键
,因此它不允许在该字段中插入
重复值

 UNIQUE KEY `title` (`title`),
 UNIQUE KEY `str` (`str`)
唯一约束可确保列中的所有值都不同

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


主键约束自动具有唯一约束。

它会引发异常,因为您将表设置为唯一,因此不可能为同一字段多次设置相同的值。还是我误解了你的问题?你是对的,我使用UNIQUE来避免重复条目,但在MYSQLI中效果很好,但在PDO中我遇到了这个错误。你确定插入的值完全相同(已经存在)当使用mysqli和pdo?在mysqli中,它在pdo中运行良好,同时插入相同的值。我得到了这个错误。可能将它设置为两列上的复合唯一键,而不是两个单独的唯一键-或者
insert ignore into是的,但它在PDO中的MYSQLI上运行良好我遇到了这个错误