无法为CRUD MySQLi创建简单,动态且可重用的PHP类

时间:2014-11-27 17:51:22

标签: php mysql mysqli

所以我本周早些时候开始学习OOP,并希望用mysql为CRUD创建一个简单,动态且可重用的PHP类。我无法弄清楚如何解决这个问题。理想情况下,我希望它可以复制粘贴到任何项目中。

所以这就是我所拥有的:

<?php

class CRUD{

    private $dbConn;

    public function __construct(){

        $this->dbConn = $this->connectToDb();

    }

    private function connectToDb(){

        $dbHost = 'localhost';
        $dbUsername = 'username';
        $dbPassword = 'password';
        $dbDatabase = 'database';

        $dbConn = new mysqli($dbHost, $dbUsername, $dbPassword, $dbDatabase);

        if($dbConn -> connect_errno){
            die('Ingen forbindelse til database' . $dbConn -> connect_error);
        } else {
            $dbConn->set_charset('UTF8');
            return $dbConn;
        }

    }

    public function create($sql1){

        $this->dbConn -> query($sql1);

    }

    public function read($sql1){



    }

    public function update($sql1){

        $this->dbConn -> query($sql1);

    }

    public function delete($sql1){

        $this->dbConn -> query($sql1);

    }

}

?>

因此,我能够提出的唯一方法是将SQL字符串作为参数发送,然后将其发送到数据库。这将使该类可用于任何查询。我不确定这是最好的方法吗?

我也不确定如何将read方法设置为copy-pasteable,如果可能的话,我将在运行数据库阵列的循环中打印出预先设置好的HTML。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:0)

这是一个好的开始,但你可以将这个课分成两部分:

  • DB:此类仅连接到数据库
  • 查询:此类应具有DB实例,只需执行查询并返回结果

有很多方法可以做到这一点并且会变得更好。您还可以阅读有关数据库抽象(DAO)的信息: http://en.wikipedia.org/wiki/Database_abstraction_layer

和ORM: http://en.wikipedia.org/wiki/Object-relational_mapping