Chcete-li nejprve odpovědět na vaši poslední otázku, „ano“, bohužel je normální přijímat čísla jako řetězce. Jak říká manuál citovaný Pascalem, mysqlnd (PHP 5.3) vrátí nativní datové typy z připravených příkazů za předpokladu, že vypnete emulaci připraveného příkazu z PDO.
new PDO($dsn, $user, $pass, array(
PDO::ATTR_EMULATE_PREPARES => false
))
PDO::ATTR_STRINGIFY_FETCHES nesouvisí s MySQL.
Pokud se podíváte na světlou stránku, je dobrým zvykem používat připravená prohlášení, takže...;)