我有一个PDO例外:
[PDOException]
SQLSTATE [23000]:完整性约束违规:1062重复条目“UNIQ_88A3CEF5FB7BD549”的重复条目“0_L525_H132_A000_P624_M600”
那么在异常发生后脚本会继续吗?
实际上,我的实体看起来像是:
/** @ORM\Table(indexes={@Index(columns={"Soundex"})})
* @ORM\Entity
* @UniqueEntity("Soundex")
*/
class SoundexData
{
/**
* @var string
*
* @ORM\Column(name="Soundex", type="string", length=255, nullable=true,unique=true)
*/
private $soundex;
我尝试使用以下方法导入数据:
try {
$em->persist($data);
$em->flush();
}
catch(\Doctrine\DBAL\DBALException $e)
{
// handle exception
}
为了避免破坏脚本并在异常发生后继续,我坚持:(
那我怎么办呢?
所有这一切的原因,我不想在我的数据库中有双重条目,所以我认为忽略双精度更容易,而不是检查每个数据集是否已存在于数据库中(没有MySQL请求是最快的要求;))
答案 0 :(得分:-1)
您应该捕获PDOException:
try {
$em->persist($data);
$em->flush();
} catch(\PDOException $e) {
// handle exception
}