How can a custom database class be implemented in PHP MySQLi to streamline database operations and improve code readability?
Implementing a custom database class in PHP MySQLi can streamline database operations and improve code readability by encapsulating database functionality into reusable methods. This allows for better organization of database-related code and reduces code duplication.
class CustomDatabase {
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 fetchArray($result) {
return $result->fetch_array();
}
public function numRows($result) {
return $result->num_rows;
}
// Add more methods as needed for specific database operations
public function close() {
$this->connection->close();
}
}
// Example of how to use the custom database class
$db = new CustomDatabase('localhost', 'username', 'password', 'database');
$result = $db->query("SELECT * FROM users");
while ($row = $db->fetchArray($result)) {
echo $row['username'] . "<br>";
}
$db->close();