How can understanding OOP principles in PHP help avoid common errors and improve code quality in database-related scripts?

Understanding OOP principles in PHP can help avoid common errors and improve code quality in database-related scripts by promoting code reusability, encapsulation, and abstraction. By organizing database interactions into classes and objects, developers can easily manage connections, queries, and data manipulation in a structured and efficient manner.

class Database {
    private $connection;

    public function __construct($host, $username, $password, $database) {
        $this->connection = new mysqli($host, $username, $password, $database);
        if ($this->connection->connect_error) {
            die("Connection failed: " . $this->connection->connect_error);
        }
    }

    public function query($sql) {
        return $this->connection->query($sql);
    }

    public function escapeString($str) {
        return $this->connection->real_escape_string($str);
    }

    public function close() {
        $this->connection->close();
    }
}

// Example of using the Database class
$db = new Database('localhost', 'username', 'password', 'dbname');
$result = $db->query("SELECT * FROM users");
while ($row = $result->fetch_assoc()) {
    echo $row['username'] . "<br>";
}
$db->close();