Inizia con il debug del tuo risultato effettivo dal database.
if (isset($_REQUEST['customer_id'])) {
$id = intval($_REQUEST['customer_id']);
$query = "SELECT * FROM customers WHERE customer_id=:id";
$stmt = $pdo->prepare( $query );
$stmt->execute(array(':id'=>$id));
$row=$stmt->setFetchMode(PDO::FETCH_ASSOC);
NON stai verificando la presenza di errori.
Due suggerimenti:
1) Stai usando <?php echo $row['first_name'];?>
. Se hai ispezionato il set di risultati, potresti vedere cosa c'è di sbagliato in questo. Basta produrre il risultato nella variabile $row (chiamata erroneamente) con print_r() e simili. Sono sicuro che vedrai cosa è andato storto.
2) Consiglio vivamente CONTRO l'utilizzo di $_REQUEST. È pigro e soggetto a errori. Sai da dove viene il "customer_id"? Sessione? Biscotto? INVIARE? O ottenere? Se stai trasmettendo informazioni tramite GET => usa GET