Php mysqli_查询($conn,$sql)或$conn->;查询($sql)

Php mysqli_查询($conn,$sql)或$conn->;查询($sql),php,security,oop,mysqli,procedural,Php,Security,Oop,Mysqli,Procedural,我是网络开发新手,目前没有使用任何框架 到目前为止,我一直在使用mysqli\u query($conn,$sql)向MySQL服务器发送查询 最近我读了另一种使用$conn->query($sql)的技术 我知道$conn->query($sql)是发送查询的OOP方式,mysqli\u query($conn,$sql)是过程方法 我还没有学习面向对象的PHP,但是,在进入框架之前,我将很快学习它 有人能告诉我使用$conn->query($sql)比使用mysqli\u查询($conn,$

我是网络开发新手,目前没有使用任何框架

到目前为止,我一直在使用
mysqli\u query($conn,$sql)
向MySQL服务器发送查询

最近我读了另一种使用
$conn->query($sql)
的技术

我知道
$conn->query($sql)
是发送查询的OOP方式,
mysqli\u query($conn,$sql)
是过程方法

我还没有学习面向对象的PHP,但是,在进入框架之前,我将很快学习它

有人能告诉我使用
$conn->query($sql)
比使用
mysqli\u查询($conn,$sql)
的优点吗? 它更安全吗?还有别的事吗

我知道OOP比过程性的好,但我想从安全的角度(主要)了解它的主要优点

“面向对象编程比过程编程好”——我认为这要视情况而定。如果我们谈论的是性能,那么是的,OOP比过程编程更高效、更有条理。如果您正在构建一个大型复杂的项目,那么OOP就是一个不错的选择。然而,若我们谈论的是安全性,那个么过程编程方法和OOP方法一样安全。尤其是当你使用PDO的时候。使用PDO时,使用命名占位符,而不是将变量直接传递到查询中,这有助于防止SQL注入等攻击。如果您使用PDO,您不需要自己清理输入(消除额外的编码),因为PDO会处理这些

我建议您开始学习,因为它遵循面向Obejct的编程风格,所以如果您开始学习,当您开始使用OOPHP编写代码时,您已经领先了一步。希望这有帮助。

两者都没有

有三点可以直截了当:

  • “学”的东西不多。对象语法看起来很愚蠢:只是一个访问方法或属性的箭头。你肯定已经去了
  • 第二个选项只会让您减少键入:

  • 无论哪种方式,您都应该使用PDO,而不是mysqli
  • 我知道OOP比程序性的好


    这在这里无关紧要。不要混淆面向对象编程和对象语法。前者是一个非常复杂的话题,需要几年的时间来学习,而且你不可能很快就学会。而对象语法只是一种语法——不多不少。没有什么太复杂的事情值得担心,也没有任何戏剧性的好处。同样的差别,你的硬币价值相同。这取决于你的需要。我的意见。程序化的简单查询。OOP,当您需要“处理”数据或使用更长的脚本时。有些人会说过程性比OOP好,你不应该使用OOP。我认为人类更容易跟踪变量,但这里的答案不是意见;)为了安全起见,请看一下可见性:当涉及到过程VS OOP时,除了可见性之外,我想不起。也许会有更多的专业用户加入,如果你想谈论mysqli内部的安全性,我建议你看看准备好的声明。这是一个优点:并且主要在OOP中处理
    mysqli_query($mysqli, $query);
    vs.
    $mysqli->query($query);