Dies ist wahrscheinlich eine einfache Frage zu beantworten, aber ich sehe es nicht in der Dokumentation erwähnt ...Zend_Db_Table: Was passiert, wenn der Einsatz zu einem Fehler führt?
Was passiert, wenn Einfügen einen Fehler verursacht? Wird eine Ausnahme ausgelöst? Welche Art? Ich versuche zu verstehen, was passieren würde, wenn doppelte Daten in eine Spalte eingefügt werden, die eindeutig ist.
So fühle ich mich wie ich zuerst einige Kontrollen tun müssen ...
protected function _emailAlreadySubscribed($email)
{
$select = $this->_model->select()->where('email = ?', $email);
$rows = $table->fetchAll($select);
if ($rows->count()) {
return true;
}
return false;
}
Ist dies der richtige Weg, um zu überprüfen?
Wie hoch ist die Wahrscheinlichkeit, dass zwei Benutzer dieselbe E-Mail innerhalb weniger Millisekunden in dieselbe Tabelle einfügen, in der die E-Mail-Spalte eindeutig ist? Ich sehe Ihren Standpunkt, aber ich denke, die Verwendung eines isUnique-Validators macht den Job gut und ist ein gültiger Ansatz. Wenn der von Ihnen beschriebene Fall eintritt (p = .00000000001?), Erhalten Sie einen Fehler, und? – markus
Nach ein paar Gedanken muss ich zugeben, dass es vielleicht dumm ist, es zu 99% sicher zu machen, wenn man es genauso gut 100% sicher machen kann ... aber ich bezweifle immer noch, dass so ein Verstoß jemals passiert ist E-Mails. – markus
gibt es eine Möglichkeit zu sagen, dass die Ausnahme ausgelöst wurde, weil der Eintrag ein Duplikat ist, im Gegensatz zu einem unbekannten Fehler? – Andrew