How can one effectively debug SQL syntax errors in PHP, particularly when encountering issues with query execution?

To effectively debug SQL syntax errors in PHP, you can start by enabling error reporting to display any errors that occur during query execution. Additionally, use functions like mysqli_error() to get detailed error messages from MySQL. Make sure to properly escape user input to prevent SQL injection attacks, and consider using prepared statements for secure querying.

// Enable error reporting
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);

// Connect to the database
$connection = mysqli_connect("localhost", "username", "password", "database");

// Check for connection errors
if (mysqli_connect_error()) {
    die("Connection failed: " . mysqli_connect_error());
}

// Sample query with error handling
$query = "SELECT * FROM users WHERE id = ?";

$stmt = $connection->prepare($query);
$stmt->bind_param("i", $id);

if (!$stmt->execute()) {
    die("Error: " . $connection->error);
}

// Fetch results
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
    // Process results
}

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