XAMPP ist eine, leider untaugliche „Testumgebung“, weil es für die genutzten Programme Einstellungen vornimmt, die mit der Realität auf faktisch allen anderen Systemen (und zu den Einstellungen derer Hersteller, wie PHP) divergieren.
Das hier ist der Standard (bis PHP 8.0):
$db->setAttribute( PDO::ATTR_STRINGIFY_FETCHES, true );
(damit werden die Zahlen als Strings geliefert) → setze das auf false
und Du bekommst alle Zahlen als solchewelche.
Hint: Ein
$db = new PDO( $dsn, $user, $pass );
var_dump( $db->getAttribute );
auf beiden Systeḿen zeigt Dir anhand des Unterschiedes, was los ist und ob meine Vermutung stimmt.