我正在将表单值插入数据库。我想知道当将该字段设置为唯一时,如果数据库中已经存在一个值,如何打印错误消息。这是数据库表设计
id(PRIMARY KEY auto_increment) name(char) email(UNIQUE) password(char) date
这里有插入代码:
try {
$sql = "INSERT INTO user_registration SET
nom=:nom,
prenom=:prenom,
email=:email,
password=:password,
sexe=:sexe,
regis_date=CURDATE()";
$s = $pdo->prepare($sql);
$s->bindValue(':nom', $_POST['nom']);
$s->bindValue(':prenom', $_POST['prenom']);
$s->bindValue(':email', $_POST['email']);
$s->bindValue(':password', password_hash($_POST['pwd1'], PASSWORD_DEFAULT));
$s->bindvalue(':sexe', $_POST['sexe']);
$s->execute();
if ($s) {
echo "insert good";
exit();
}
} catch (PDOException $e)
{
$errorinsert='Error inserting values';
include_once'error_page.html.php';
exit();
}
插入部分工作得很好。。。但是,如果数据库中已经存在电子邮件,我如何打印错误消息
我想你是说如何捕捉错误,你可以用$e->getMessage()
来完成
try {
//code
} catch(PDOException $e) {
$errorinsert = $e->getMessage();
include_once'error_page.html.php';
exit();
}
来源:http://php.net/manual/en/language.exceptions.php