首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

学习PDO中的错误与错误处理模式

PDO::ERRMODE_EXCEPTION,除设置错误码之外,PDO 还将抛出一个 PDOException 异常类并设置它的属性来反射错误码和错误信息。...= new PDO('mysql:host=127.0.0.1;port=3306;dbname=blog_test1', 'root', ''); // Fatal error: Uncaught PDOException...: SQLSTATE[HY000] [1049] Unknown database 'blog_test1' blog_test1 表并不存在,所以在 new PDO 的时候就已经直接会抛出异常了。...这个在实例化连接数据库过程中的错误处理机制是固定的,不是我们能修改的错误处理机制,毕竟如果连数据库连接都无法建立的话,就不用谈后面的任何操作了。...总算是能让程序中止运行并且报出 Fatal error 错误了,同时,这个异常信息也是可以通过 try...catch 来捕获到的。这样的开发才是我们最需要的开发形式。

2.1K10

MYSQL ERROR CODE 错误编号的意义

1010:不能删除数据目录导致删除数据库失败 1011:删除数据库文件失败 1012:不能读取系统表中的记录 1020:记录已被其他用户修改 1021:硬盘剩余空间不足,请加大硬盘可用空间...:无效的主机名 1043:无效连接 1044:当前用户没有访问数据库的权限 1045:不能连接数据库,用户名或密码错误 1048:字段不能为空 1049:数据库不存在 1050:数据表已存在...1211:当前用户没有创建用户的权限 1216:外键约束检查失败,更新子表记录失败 1217:外键约束检查失败,删除或修改主表记录失败 1226:当前用户使用的资源已超过所允许的资源,请重启数据库或重启服务器...错误:1279 SQLSTATE: HY000 (ER_UNTIL_COND_IGNORED) 消息:SQL线程未启动,因而UNTIL选项被忽略。...) 消息:未使用二进制日志功能。

2.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    记一次ThinkPHP框架错误解决处理!

    而下面本渣渣要记录的一个网页错误就是ThinkPHP框架的,严格意义上来说应该是数据库的错误处理,以下仅供参考,仅为记录学习!...错误代码 [10501] PDOException in Connection.php line 390 SQLSTATE[HY000]: General error: 1030 Got error 28...master); // 返回结果集 return $this->getResult($pdo, $procedure); } catch (\PDOException...未开启错误提示: 开启错误提示: ThinkPHP框架调试开启 请注意ThinkPHP框架版本以及开发人员设置,本渣渣这里的开启仅供参考!...当然还有干扰信息,虽然本渣渣按照能正常访问,但是,这个替换处理方法实际上我这边是更换了一个本地的数据库,数据倒回到了去年20年的数据!

    2.4K30

    【重学 MySQL】八十、掌握定义条件与处理程序,让数据库管理更高效!

    1010:不能删除数据目录导致删除数据库失败。 1012:不能读取系统表中的记录。 1020:记录已被其他用户修改。 1021:硬盘剩余空间不足,请加大硬盘可用空间。...1022:关键字重复,更改记录失败。 1040:已到达数据库的最大连接数,请加大数据库可用连接数。 1044:当前用户没有访问数据库的权限。 1045:不能连接数据库,用户名或密码错误。...1049:数据库不存在。 1050:数据表已存在。 1051:数据表不存在。 1054:字段不存在。 1062:字段值重复,入库失败。 1130:连接数据库失败,没有连接数据库的权限。...1203:当前用户和数据库建立的连接已到达数据库的最大连接数,请增大可用的数据库连接数或重启数据库。 1216:外键约束检查失败,更新子表记录失败。...处理程序可以处理条件、警告、未捕获的异常等。

    13310

    实例讲解PHP异常PHP异常的概念内置异常类异常可以冒泡传递自定义异常类自定义异常处理器像处理异常一样处理错误

    localhost;dbname=mysql", 'root', 'nothing'); // 密码随便填,故意写错 // 并没有手动抛异常 var_dump($pdo); } catch (PDOException...""; } echo "测试内置的异常类"; 结果如下: SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost'...如果所在层的异常抛出后没有被本层捕获,就会寻找上层的捕获程序 多层异常嵌套 header('content-type:text/html;charset=utf-8'); try { try {..."--第二层"; throw new Exception('测试异常2'); // 当前层并没有catch捕获此异常,因此会到外层去寻找捕获 } } catch (Exception...自定义的异常处理器1--exceptionHandler_1 像处理异常一样处理错误 通过set_error_handler函数,我们可以捕获错误,像处理异常一样。

    1.9K40

    MySQL中触发器的使用

    触发器: 触发器的使用场景以及相应版本: 触发器可以使用的MySQL版本: 版本:MySQL5以上 使用场景例子: 每当增加一个顾客到某个数据库表时,都检查其电话号码格式是否正确,州的缩写是否为大写 每当订购一个产品时...'HY000' SET message_text = msg; END 结果: INSERT INTO products VALUES('demo2','1003','xiaoguo','66.6...'HY000' SET message_text = msg; 如果该SIGNAL语句指示特定SQLSTATE值,则该值用于表示指定的条件 “HY000”被称为“一般错误”: 如果命令出现一般错误,则会触发后面的...例二: 在COURSE表上创建触发器,检查插入时是否出现课程名相同的记录,若有则不操作。...未执行前的值,还可以引用一个名为NEW的虚拟表访问新更新的值; 在before update触发器中,NEW中的值可能也被更新(允许修改将要用于update语句中的值); OLD中的值全部只读,不能更新

    3.3K10

    5.错误处理在存储过程中的重要性(510)

    这包括但不限于: 异常捕获:识别存储过程中发生的特定错误或异常。 错误记录:将错误信息记录到日志中,以便于后续分析和调试。 用户通知:向调用者或用户报告错误信息。...检测性策略: 异常捕获:使用try-catch块来捕获和处理异常。 断言:在代码中设置断言来检查程序状态是否符合预期。 日志记录:记录程序运行时的关键信息,以便在发生错误时进行分析。...'HY000' BEGIN -- 在这里可以记录错误日志或执行其他错误处理逻辑 -- 例如:INSERT INTO error_log (error_message...这通常在捕获到错误或异常时执行,以确保数据库状态不会因为部分完成的操作而处于不一致状态。...相反,应该使用具体的错误代码或SQLSTATE值来定义更精确的错误处理程序。 2. 使用日志记录错误 当异常发生时,应该将错误信息记录到日志中。

    9710

    MySQL数据库关于PID问题的排查

    三、pid文件不存报什么错 在MySQL数据库中,如果PID(进程ID)不存在,通常会报以下错误: ERROR 2002 (HY000): Can't connect to local MySQL server...ERROR 1049 (42000): Unknown database 看起来像是数据库不存在,但有时候也可能是由于服务器未运行导致的。...ERROR 2013 (HY000): Lost connection to MySQL server during query 客户端尝试连接到一个已经崩溃或不响应的服务器。...如果MySQL安装后没有PID文件,可能是由于配置文件中的pid-file参数未正确设置或MySQL服务未以预期的用户身份运行。...3、查看错误日志 MySQL的错误日志会记录详细的启动失败信息,在my.cnf中可看到 log-error=/var/log/mysqld.log,查看该文件以获取更多线索。

    13921
    领券