Ověření unikátnosti ukládaných dat

Patrik Votoček

Jak řešíte ukládání dat s ověřením unikátnosti záznamu?

Řešení první

Prvním řešením je zeptat se

$values = array('title' => "Test", 'slug' => "test", 'text' => "Lorem ipsum...");
if ($model->where("slug = ?", $values['slug'])->count("*") < 1) {
	$model->insert($values);
} else {
	/* $form['slug']->addError("..."); */
}

Problém

Řešení druhé

Druhým možným řešením je zachycení vyjímky při selhání

try {
	$model->insert(array('title' => "Test", 'slug' => "test", 'text' => "Lorem ipsum..."));
} catch (\PDOException $e) {
	$info = $e->errorInfo;
	if ($info[0] == 23000 && $info[1] == 19) {
		/* $form['slug']->addError("..."); */
	} else {
		throw $e;
	}
}

Problémy

« »