Definir
PDO::ATTR_EMULATE_PREPARES
para false, se você realmente precisar dele com PHP de tipo flexível Se
mysql_fetch_row
retorna você int para SUM (nunca me importei em verificar) - então ele faz alguma mágica como if (ctype_digit($val)) $row[$key] = (int)$val;
- para que você possa fazer em seu DBAL Tanto quanto eu entendo como as instruções preparadas funcionam, ela usa a mesma estrutura de pacote para enviar e recuperar dados, e esse pacote contém o tipo de dados.
Parece que esse servidor pode retornar dados em 2 formatos - nativo e mysqlnd, dependendo do tipo de solicitação. Um último pode ser interpretado pela biblioteca cliente para converter o valor resultante.