我是Web开发的新手,我目前没有使用任何框架。
到目前为止,我一直在使用mysqli_query($conn, $sql)
向MySQL服务器发送查询。
最近我读到了另一种使用$conn - > query($sql)
的技术。
我知道$conn->query($sql)
是发送查询的 OOP 方式,mysqli_query($conn, $sql)
是过程方法。
我还没有学习面向对象的PHP,但是,在进入框架之前,我将很快学习它。
有人可以告诉我使用$conn->query($sql)
相对于mysqli_query($conn, $sql)
的优势吗?更安全吗?还有别的吗?
我知道 OOP 比程序化更好,但我想知道主要优势,从安全性(主要是(的角度来看!
两者都不是。
三点直截了当:
- 有很多值得注意的"学习"。对象语法看起来很愚蠢:只是一个用于访问方法或属性的箭头。当然,你已经去了。
-
第二个选项只是让你少打字:
mysqli_query($mysqli, $query); vs. $mysqli->query($query);
- 无论哪种方式,您都应该使用 PDO,而不是 mysqli
我知道OOP比程序更好
这在这里无关紧要。不要将面向对象编程与对象语法混淆。前者是一个非常复杂的话题,需要数年时间才能学会,而且你几乎不会很快得到它。虽然对象语法只是一种语法 - 不多不少。没有什么太复杂而不必担心的,也没有任何显着的好处
OOP比过程编程更好" - 我会说这取决于。如果我们谈论的是性能,那么是的,OOP比过程编程更有效,更有条理。如果您正在构建一个大型复杂项目,那么 OOP 就是您的最佳选择。但是,如果我们谈论的是安全性,那么过程编程方法与OOP方法一样安全。特别是如果您正在使用PDO。使用 PDO 时,使用命名占位符,而不是将变量直接传递到查询中,这有助于防止 SQL 注入等攻击。如果您使用 PDO,则无需自己清理输入(消除额外的编码(,因为 PDO 会处理这个问题。
我建议您开始使用PDO,因为它遵循面向Obejct的编程风格,因此,如果您开始使用它,那么当您开始使用OOPHP编写代码时,您已经领先一步。希望有帮助。