当前位置: 首页 > wzjs >正文

做网站引流的最佳方法wordpress开发 文档下载

做网站引流的最佳方法,wordpress开发 文档下载,头条热点新闻,基于h5的移动网站开发操作数据库的时候经常会遇到报错:SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ,报错信息给开发者调试没问题,直接展示给用户的话,用户就以为是程序乱码或者程序有问题,实际上是原始提示太…

操作数据库的时候经常会遇到报错:SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry ,报错信息给开发者调试没问题,直接展示给用户的话,用户就以为是程序乱码或者程序有问题,实际上是原始提示太不直观 

你可以通过自定义异常类来提供更友好的提示信息。以下是实现方案:

1. 创建自定义数据库异常类

<?php
namespace app\exception;use think\Exception;class DatabaseOperationException extends Exception
{// 常见数据库错误码映射const ERROR_MAP = [1062 => '数据已存在,请勿重复添加',1451 => '操作失败,存在关联数据',1452 => '操作失败,关联数据不存在',// 可以添加更多错误码映射];// 字段重复映射(可根据需要扩展)const FIELD_MAP = ['id_code' => '身份证号','username' => '用户名','email' => '邮箱','phone' => '手机号',];public function __construct($message = "", $code = 0, \Throwable $previous = null){// 如果是已知的数据库错误码,转换为友好提示if (preg_match('/SQLSTATE\[23000\]:.*1062.*Duplicate entry \'.*\' for key \'(\w+)\'/', $message, $matches)) {$field = $matches[1] ?? '';$fieldName = self::FIELD_MAP[$field] ?? $field;$message = "{$fieldName}已存在,请勿重复添加";$code = 1062;}parent::__construct($message, $code, $previous);}/*** 从数据库异常创建自定义异常*/public static function createFromDbException(\Throwable $e){// 尝试从错误信息中提取错误码if (preg_match('/SQLSTATE\[23000\]:.*(\d{4})/', $e->getMessage(), $matches)) {$errorCode = $matches[1] ?? 0;$message = self::ERROR_MAP[$errorCode] ?? $e->getMessage();return new self($message, $errorCode, $e);}return new self($e->getMessage(), $e->getCode(), $e);}
}

2. 使用方式

try {// 尝试创建用户$user = User::create($userData);
} catch (\think\db\exception\DbException $e) {// 转换为自定义异常throw DatabaseOperationException::createFromDbException($e);
} catch (\Exception $e) {// 其他异常处理throw new \Exception('操作失败,请稍后再试');
}

 3. 全局异常处理(可选)

// 在app/ExceptionHandle.php中public function render($request, \Throwable $e): Response
{// 如果是数据库操作异常if ($e instanceof \think\db\exception\DbException) {$friendlyException = DatabaseOperationException::createFromDbException($e);return json(['code' => 400,'msg' => $friendlyException->getMessage(),'data' => null]);}// 其他异常处理...return parent::render($request, $e);
}

 

4. 效果

当用户尝试添加重复的身份证号时,原本的:

SQLSTATE[23000]: Integrity constraint violation: 1062 Duplicate entry '220********25' for key 'id_code'

将被转换为更友好的提示: 

身份证号已存在,请勿重复添加 

5. 扩展建议

  1. 可以根据业务需要扩展FIELD_MAPERROR_MAP,添加更多字段和错误码的映射

  2. 对于多语言应用,可以将提示信息改为从语言包读取

  3. 可以记录原始异常信息到日志,便于调试

这种方式既保持了原始错误信息的完整性(通过日志),又为用户提供了友好的界面提示。

 

http://www.dtcms.com/wzjs/590964.html

相关文章:

  • 如何推广自己网站链接阿里巴巴网站怎么做全屏大图
  • oa网站模板营销型网站建设注意
  • 深圳建站公司兴田德润电话多少苏州手机app开发
  • 东莞网站建设应该怎么做什么是市场营销什么是网络营销
  • 襄阳做网站公司有哪些wordpress 修改字体
  • 学校校园网站建设实施方案长沙市天心区建设局网站
  • 网站开发 制作学校网站建设客户需求调查问卷
  • 建设部网站 造价大家做网站都会去哪找素材
  • 广州网站建设性价比拼多多免费推广软件
  • 一个网站做3个关键词够小程序卖货怎么样
  • 北京网站改版费用it教育培训机构
  • 西宁高端网站建设公司西直门网站建设
  • 东莞企业如何建网站国际域名网站
  • 可以做视频网站的源码音乐网站开发书籍
  • 不会写程序如何建网站做影视剪辑资源哪里找
  • 安徽城乡建设 厅网站图文设计用什么软件
  • 中英网站建设百度竞价在哪里开户
  • 专门做酒店的招聘网站广州网络营销岗位数量
  • 北京高端网站建设价格注册个人公司流程及费用
  • 用dw做一个个人网站传奇手游三端互通新开服网站
  • 编程猫官方网站入口济南网站建设方案服务
  • 天府新区建站公司网站建设与信息安全培训小结
  • 网站(建设)安全自查报告建e网室内设计网官网电脑app下载
  • 公司 网站建设 会计科目网络推广外包哪个公司做的比较好
  • 广州白云做网站发展速度迅猛 具有丰富的网站建设经验
  • 洛龙区网站设计建设wordpress充值金币的插件
  • 垂直网站做网站需要哪些费用支出
  • wordpress建站系统视频教程哪里有网站建设联系方式
  • 南宁网络企业网站win7 做网站服务器
  • 网站备案 后期网络架构方案书