我正在使用 php 和 mysql 制作网站。特别是使用 PDO DB 扩展。我的问题是当我在 sql 中运行命令时是否应该始终进行错误检查。在其他人的代码中,我看到了所有 CRUD 的错误检查,其中一些仅针对 C 和 D。如果出现问题,我应该怎么做才能拥有一个响应迅速、信息丰富且安全的网站以及每个人都易于阅读的代码。
是否有任何适用于我的 php 数据库扩展?
谢谢。
我正在使用 php 和 mysql 制作网站。特别是使用 PDO DB 扩展。我的问题是当我在 sql 中运行命令时是否应该始终进行错误检查。在其他人的代码中,我看到了所有 CRUD 的错误检查,其中一些仅针对 C 和 D。如果出现问题,我应该怎么做才能拥有一个响应迅速、信息丰富且安全的网站以及每个人都易于阅读的代码。
是否有任何适用于我的 php 数据库扩展?
谢谢。
当然!
你为什么不呢?没有理由不这样做,也有充分的理由这样做。
这甚至不应该是一个问题。
这就像在问“我是否应该时刻注意我的财物,或者有时可以将我的信用卡和 PIN 码给随机的陌生人过夜?”
有些人可能认为这主要是基于意见。
我认为最佳实践是始终检查 PDO 错误。
您可以设置PDO::ERRMODE_EXCEPTION
并使用“try-catch”块并处理异常,或者您可以保留默认值PDO::ERRMODE_SILENT
并检查每个 PDO 函数调用的返回。
仅仅因为 PDO 函数在您开发和测试时不会抛出错误并不意味着它不会在将来的某个时间抛出错误。并且让代码“默默地”失败无助于发现问题或解决问题。
大多数关于 PHP 和 MySQL 的问题(发布在 StackOverflow 上)都是“请为我修复我的 codez,因为我不知道它为什么不工作”的种类,而且发问者的代码总是不检查 MySQL 接口函数返回的错误(无论是 mysql_、mysqli_ 还是 PDO。)
我的观点是,保留默认值PDO::ERRMODE_SILENT
并且在 PDO 函数调用后不检查错误的代码本质上是将它的小指放在嘴角,邪恶博士风格,并说“我只是假设它都会去计划。什么?
是的,始终检查 PDO 错误。
问:是否有任何适用于我的 php 数据库扩展?
我不知道任何可以为您“处理”PDO 错误的 PHP 扩展。我的偏好是PDO::ERRMODE_EXCEPTION
使用 try-catch 块来捕获异常并处理它。是的,它确实使代码有点混乱。
从我在 StackOverflow 上看到的关于 PHP 和 MySQL 的问题来看,代码经常被大量不必要的代码(处理转换和计算,这些在 SQL 语句中可以更有效地处理)弄得乱七八糟。