In PHP, what are the best practices for error reporting and handling when dealing with database queries?

When dealing with database queries in PHP, it is important to properly handle errors to ensure the stability and security of your application. One best practice is to enable error reporting and logging to help identify and troubleshoot any issues that may arise during database operations. Additionally, using try-catch blocks to catch and handle exceptions can prevent your application from crashing if a query fails.

// Enable error reporting and logging
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

// Connect to the database
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "database";

$conn = new mysqli($servername, $username, $password, $dbname);

// Check connection
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}

// Example query
$sql = "SELECT * FROM users";
$result = $conn->query($sql);

// Handle query errors
if (!$result) {
    trigger_error('Invalid query: ' . $conn->error);
}

// Process query results
while ($row = $result->fetch_assoc()) {
    // Do something with the data
}

// Close the connection
$conn->close();