За да отговоря първо на последния си въпрос, „да“, за съжаление е нормално да получавате числа като низове. Както се казва в наръчника, цитиран от Pascal, mysqlnd (PHP 5.3) ще върне собствени типове данни от подготвени оператори, при условие че изключите емулацията на подготвени оператори от PDO.
new PDO($dsn, $user, $pass, array(
PDO::ATTR_EMULATE_PREPARES => false
))
PDO::ATTR_STRINGIFY_FETCHES не е свързан с MySQL.
Ако погледнете хубавата страна, добра практика е все пак да използвате подготвени изявления, така че...;)