php - 处理特定列上的唯一键错误
问题描述
我正在尝试捕获特定列上的唯一键错误。
假设有一个包含 3 列的表(id, name, value)
。
所有 3 列都是唯一的(不是复合的)。
当我进行插入并失败时,我想重试插入,但前提是它是因为value
列。
例如,如果因为value
列而插入失败,我想重试插入,但如果是因为name
列,我不想重试插入。
我如何知道错误发生在哪一列?
到目前为止我发现的是使用错误代码,但这并没有告诉我唯一错误发生在哪一列。
try {
$foo = new Foo(['foo' => 42, 'bar' => 1]);
$foo->save();
} catch (\Exception $e) { // It's actually a QueryException but this works too
if ($e->getCode() == 23000) {
// Deal with duplicate key error
}
}
我应该使用正则表达式来分析消息还是有更好的方法?
解决方案
推荐阅读
- javascript - 传输参数成
- angularjs - Angularjs 步骤指令不适用于 ng-repeat 指令
- webpack - 由于使用 \9 的第三方文件较少,Webpack 无法识别输入
- python - 将列表中的随机数据打印到文件中
- scala - spark/scala 的默认 kryo 注册集
- lance - Tile-based movement with Lance game engine?
- java - 如何修复“当我在漂亮的对话框按钮上单击两次时重复打印”
- postgresql - 在 PostgreSQL 中查询不同的非重叠范围集
- symfony - 如何手动将违规映射到 Symfony 表单?
- node.js - node.js 中是否有 child_process.fork() 的同步版本?