在使用PHP和数据库时使用OOP有什么优势?

时间:2019-05-15 04:06:15

标签: php oop mysqli

你好吗?我希望很好!

因此,我开始使用OOP php,我有一个简单的问题:为什么要使用对象属性将某些内容插入数据库? 我将用一些代码来说明我的问题,以便更好地理解。

function criar () {
        require_once '../conexao.php';
        $sql = "insert into usuarios (nickname, nome, nascimento, email, avatar_id, genero) values ('$this->nick','$this->nome', '$this->nasc', '$this->email', '$this->avatar', '$this->genero');";
        $conexao->query($sql);
    }

这是一个名为usuarios的类中的函数,该函数在名为usuarios.php的文件中定义,我使用它将数据插入到我的数据库中。有人告诉我这是“使用oop php时很好的习惯”。 这就是我在另一个名为criar_usuario.php的文件中使用函数的方式:

<?php
if ($_SERVER['REQUEST_METHOD']=='POST'){
    require_once '../classes/usuarios.php';

    $nick = $_POST['nick'];
    $nome = $_POST['nome'];
    $nasc = $_POST['nascimento'];
    $email = $_POST['email'];
    $adm = $_POST['credencial'];
    $genero = $_POST['genero'];
    $avatar = $_POST['avatar'];
    $senha = $_POST ['senha'];

    $u=new usuarios();
    $u->set_nick($nick);
    $u->set_name($nome);
    $u->set_nasc($nasc);
    $u->set_email($email);
    $u->set_avatar($avatar);
    $u->set_credencial($credencial);
    $u->set_genero($genero);
    $u->set_senha($senha);
    $u->criar();
    header ('location: ../usuarios.html');
}

?>

因此,如您所见,首先设置对象属性,然后将这些属性插入数据库。

我也可以这样写我的函数:

if ($_SERVER['REQUEST_METHOD']=='POST'){
    require_once '../classes/usuarios.php';

    $nick = $_POST['nick'];
    $nome = $_POST['nome'];
    $nasc = $_POST['nascimento'];
    $email = $_POST['email'];
    $adm = $_POST['credencial'];
    $genero = $_POST['genero'];
    $avatar = $_POST['avatar'];
    $senha = $_POST ['senha'];

    $u=new usuarios();
    $u->criar($nick, $nome, $nasc, $email, $adm, $genero, $avatar, $senha);
    header ('location: ../usuarios.html');
}

并这样称呼它:

if ($_SERVER['REQUEST_METHOD']=='POST'){
    require_once '../classes/usuarios.php';

    $nick = $_POST['nick'];
    $nome = $_POST['nome'];
    $nasc = $_POST['nascimento'];
    $email = $_POST['email'];
    $adm = $_POST['credencial'];
    $genero = $_POST['genero'];
    $avatar = $_POST['avatar'];
    $senha = $_POST ['senha'];

    $u=new usuarios();
    $u->criar($nick, $nome, $nasc, $email, $adm, $genero, $avatar, $senha);
    header ('location: ../usuarios.html');
}

为什么我应该使用第一种方法,而不仅仅是使用通用参数创建函数,而不是使用对象的属性?以对象的方式完成操作不仅是做不必要的工作(创建对象,设置属性,当我可以直接使用函数时,他们使用它们将其插入数据库)?

0 个答案:

没有答案