gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 23:19:13 25 4
gpt4 key购买 nike

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

我问了一些具体的问题,比如如何做这个,如何做那个,并且始终专注于用代码实现目标,而不仅仅是学习以获得更深入的理解。所以这是我第一次问这样的“开放”问题。

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

我不仅会提出问题,还会尝试自己回答问题,所以也许您可以在此处提问之前就我的思维方式向我提供反馈,或者确认我从不同资源收集的信息。

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

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

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

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

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

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

非常感谢。

ShadyAF

最佳答案

  1. 您不需要数据库类处理程序,您可以根据需要实现,但这不是必需的。
  2. 什么是准备 mysql 语句?
    SQL Syntax for Prepared Statements
    Prepared Statements
    How can I prevent SQL-injection in PHP?

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

  4. 根据我的经验,PDOmysqli 更好,但无论哪种方式,我都会原始使用它们,因为我得出的结论是,此类类只会限制您。如果您想使用一个,您可以随时编写自己的(不推荐),谷歌或询问 software-recs .
  5. (额外奖励:D)我认为您真正需要的是一个框架。我建议ZendLaravel .

关于Php Mysqli 问题和处理程序库/类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27472496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com