2017-12-18 1 views
-1

Wie behebt man dieses Problem?PDO - Nicht abgefangene PDOException: SQLSTATE [23000]: Verletzung der Integritätsbedingung

Uncaught PDOException: SQLSTATE [23000]: Integrität Einschränkungsverletzung: 1062 doppelten Eintrag

I UNIQUE KEY auf meinem Tisch verwenden

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; 

wenn ich die gleichen Daten für Zeiten eingeben I habe diesen Fehler

Wenn ich Daten ohne UNIQUE KEY erstellen, funktioniert es gut

Mein PDO Insert Code

$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(); 

wenn ich die $stmt->execute(); die UNIQUE KEY Konzept entfernen gut funktioniert

ich auf MYSQLI versucht, funktioniert es ohne Problem aber in PDO bekam ich diesen Fehler

+0

Nun, es löst eine Exception aus, weil Sie die Tabelle auf UNIQUE setzen, daher ist es nicht möglich, denselben Wert mehrmals für dasselbe Feld festzulegen. Oder habe ich deine Frage missverstanden? – Geshode

+0

Sie haben Recht, ich benutze UNIQUE, um die doppelten Einträge zu vermeiden, aber in MYSQLI funktioniert es gut, aber in PDO habe ich diesen Fehler –

+0

Sind Sie sicher, dass Sie genau die gleichen Werte einfügen (wenn mysqli und PDO? –

Antwort

0

Sie haben definieren unique key für titlestr und so ermöglicht es nicht duplicate value Einsatz in diesem Bereich

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

Die UNIQUE-Einschränkung stellt sicher, dass alle Werte in einer Spalte unterschiedlich sind.

Sowohl die UNIQUE- als auch die PRIMARY KEY-Bedingungen bieten eine Garantie für die Eindeutigkeit einer Spalte oder eines Spaltensatzes.

Eine PRIMARY KEY-Einschränkung hat automatisch eine UNIQUE-Einschränkung.

+0

ja, aber es funktioniert gut auf MYSQLI in PDO Ich habe diesen Fehler –

Verwandte Themen