需要关于OOP PHP MySQL连接的建议吗

需要关于OOP PHP MySQL连接的建议吗,php,mysql,oop,mysqli,Php,Mysql,Oop,Mysqli,因此,我编写了一个简单的MySQLi类(从不同的教程中抓取+我自己的知识),我希望您指出任何错误和/或我应该添加/更改/删除什么。非常感谢。代码如下: dbclass.php <?php class Database { protected static $connection; public function __construct() { self::$connection = $this->

因此,我编写了一个简单的MySQLi类(从不同的教程中抓取+我自己的知识),我希望您指出任何错误和/或我应该添加/更改/删除什么。非常感谢。代码如下:

dbclass.php

<?php
    class Database
    {
        protected static $connection;

        public function __construct()
        {
            self::$connection = $this->connect();
        }

        public function __destruct()
        {
            self::$connection->close();
        }

        private function connect()
        {
            if (!isset(self::$connection))
            {
                $config = parse_ini_file("dbsettings.ini");
                self::$connection = new mysqli($config["host"], $config["username"], $config["password"], $config["database"]);
            }

            if (!self::$connection)
                return false;

            return self::$connection;
        }   

        public function query($query)
        {
            $result = self::$connection->query($query);
            return $result;
        }  

        public function select($query)
        {
            $rows = array();
            $result = $this->query($query);

            if (!$result)
                return false;

            while ($row = $result->fetch_assoc())
            {
                $rows[] = $row;
            }

            return $rows;
        } 

        public function escape($value)
        {
            $value = htmlspecialchars($value, ENT_QUOTES, "UTF-8");
            return "'".self::$connection->real_escape_string($value)."'";
        }
    };
?>

堆栈溢出不是代码审阅站点,但仍然是。让代码为您执行转义不是更好吗?您确定要为每个变量手工编写转义调用(有可能忘记),而不是像这样简单的一行吗

    $conn = new Database;
    $rows = $conn->select("SELECT * FROM users WHERE email = ?", [$_POST["email"]]);

问题是什么?第一个建议-了解预处理语句您是否试图将dbclass设置为单例类?您自己是否遇到错误?Stack Overflow不是一个代码审阅站点,但有一个反馈是必不可少的:任何不支持预处理语句的内容都不应使用。我不知道,谢谢:)
    $conn = new Database;
    $rows = $conn->select("SELECT * FROM users WHERE email = ?", [$_POST["email"]]);