Are there any best practices to follow when updating PHP code from procedural to object-oriented mysqli?
When updating PHP code from procedural to object-oriented mysqli, it is important to follow best practices to ensure a smooth transition. Some key steps to consider include creating a database connection object, using prepared statements for secure queries, and utilizing object-oriented programming principles like encapsulation and inheritance.
// Procedural mysqli code
$conn = mysqli_connect($servername, $username, $password, $dbname);
$query = "SELECT * FROM users WHERE id = $user_id";
$result = mysqli_query($conn, $query);
$row = mysqli_fetch_assoc($result);
// Object-oriented mysqli code
class Database {
private $conn;
public function __construct($servername, $username, $password, $dbname) {
$this->conn = new mysqli($servername, $username, $password, $dbname);
}
public function getUserById($user_id) {
$stmt = $this->conn->prepare("SELECT * FROM users WHERE id = ?");
$stmt->bind_param("i", $user_id);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
return $row;
}
}
// Usage
$db = new Database($servername, $username, $password, $dbname);
$user = $db->getUserById($user_id);