Задайте PDO::ATTR_EMULATE_PREPARES
на false, ако наистина се нуждаете от него с свободно въведен PHP
Ако mysql_fetch_row
връща ви int за SUM (никога не съм се интересувал да проверя) - тогава прави някаква магия като if (ctype_digit($val)) $row[$key] = (int)$val;
- така че можете да направите във вашия DBAL
Доколкото разбирам начина, по който подготвените оператори работят, той използва една и съща структура на пакети както за изпращане, така и за извличане на данни и този пакет съдържа тип данни.
Изглежда, че сървърът може да връща данни в 2 формата - native и mysqlnd, зависи от типа на заявката. Последното може да бъде интерпретирано от клиентска библиотека, за да прехвърли получената стойност.