我想知道是否有可能得到列名,使重复错误的插入?
例如,用户名上有一个唯一键,电子邮件上有另一个唯一键:
try{
$pdo->query("INSERT INTO `table`(`username`,`email`)`VALUES('Superman','xxx@xx.com')");
} catch (PDOException $e) {
if($e->errorInfo[0] == '23000' && $e->errorInfo[1] == '1062'){
throw new CustomException("Bla bla already exists");
// How does we get the duplicated column and then display "Email already exists" or "Username already exist"
} else {
throw $e;
}
}
我们如何获得重复的列信息,然后显示“email already exists”或“username already exists”而不是“duplicate entry(好的,但是哪一个?)
谢谢您,
2条答案
按热度按时间hkmswyz61#
谢谢你的主意。我不认为那个错误能给我这个信息。所以结果是:
基本上是在工作。
谢谢,
bttbmeg02#
您可以检查db中的值,或者为用户获取错误消息中的列名称。
也可能您更喜欢对“非结果查询字符串”使用exec命令。