Php Mysqli 问题和处理程序库/类


Php Mysqli questions and handler library/class

我已经编写php有一段时间了。但不幸的是,我对一些事情缺乏深刻的理解,我正在努力弥补这一点。

我问了一些具体的问题,比如如何做这个,怎么做,并且总是专注于用代码实现目标,而不仅仅是为了更深入地理解而学习。 所以这是我第一次问这样的"开放"问题。

我计划用PHP创建一个OOP系统。我试图把我迄今为止学到的一切放到这个系统中。使用我迄今为止获得的最佳实践和技能。我想了解更多的是我的系统Mysqli DB处理程序。

我不仅

会问问题,我还会尝试自己回答,所以也许你很友好地给我反馈我的思维方式,或者在问这里之前确认我从不同资源收集的信息。

我的第一个问题是为什么我需要数据库处理程序类?

到目前为止,我一直在我的模型(类(中调用普通(原始(mysqli 语句,而无需处理程序。但是我见过许多系统使用数据库处理程序类。我的结论是,它节省了时间。您可以比将 MySQL 语句编写为原始语句更快地编写和操作它们。这是唯一的优势吗?我可能想到的另一个优势是安全性。我可以在我的 Handler 类中验证参数,并且由于验证发生在一个地方,因此比必须在多个地方验证参数更安全,增加了忘记验证参数等的机会......

我的第二个问题是,究竟是什么在准备 mysql 语句,它如何消除 mysql 注入的风险?(它的工作原理有什么特别之处,它与将参数直接写入原始查询不同?

我的第三个问题是,PDO是否需要参数化查询?我的一个朋友告诉我,如果我想正确准备语句,我必须安装 PDO 驱动程序。但是在研究了一些之后,我发现mysqli具有相同的能力来准备参数并将其绑定到语句中。他的说法可信吗?

我的第四个问题是,根据您的经验,您能否建议一个好的Mysqli DB处理程序库,该库可以在我的项目中共享和使用,也可以从中学习?

我知道我问了很多问题,我非常感谢您的时间并提前回复!

谢谢。

黑幕

  1. 您不需要数据库类处理程序,如果需要,可以实现,但这不是必需的。
  2. 究竟什么是准备 mysql 语句?
    预准备语句
    的 SQL 语法准备好的声明
    如何防止 PHP 中的 SQL 注入?

  3. PDO 并不是唯一提供预准备语句的扩展。您可以使用mysqli进行操作,请参阅mysqli_prepare。这种说法是错误的。

  4. 根据我的经验,PDOmysqli好,但无论哪种方式,我都会使用它们,因为我得出的结论是这样的类只会限制你。如果你想使用一个,你可以随时编写自己的(不推荐(,谷歌或询问软件记录。
  5. (奖金:D(我认为你真正想要的是一个框架。我会建议Zend或Laravel。