What are the best practices for rewriting a PHP class to utilize mysqli or PDO for improved functionality and security?
When rewriting a PHP class to utilize mysqli or PDO for improved functionality and security, it is important to use prepared statements to prevent SQL injection attacks and to properly handle errors. Additionally, using parameterized queries can help improve performance by reducing the need for repetitive query parsing.
// Using mysqli for improved functionality and security
class Database {
private $conn;
public function __construct($host, $username, $password, $database) {
$this->conn = new mysqli($host, $username, $password, $database);
if ($this->conn->connect_error) {
die("Connection failed: " . $this->conn->connect_error);
}
}
public function getUsers() {
$stmt = $this->conn->prepare("SELECT * FROM users");
$stmt->execute();
$result = $stmt->get_result();
$users = $result->fetch_all(MYSQLI_ASSOC);
$stmt->close();
return $users;
}
}
```
```php
// Using PDO for improved functionality and security
class Database {
private $conn;
public function __construct($host, $username, $password, $database) {
$dsn = "mysql:host=$host;dbname=$database";
$this->conn = new PDO($dsn, $username, $password);
$this->conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
public function getUsers() {
$stmt = $this->conn->prepare("SELECT * FROM users");
$stmt->execute();
$users = $stmt->fetchAll(PDO::FETCH_ASSOC);
return $users;
}
}
Related Questions
- How can SQL injection vulnerabilities be mitigated when using user input in SQL queries in PHP?
- How can PHP and JavaScript be effectively integrated for live search functionality on a website?
- In what scenarios should PHP developers prioritize using $_SESSION[] over session_register() for storing and managing session data?