Я бы добавил к комментарию Джейка. В большинстве RDBMS база данных должна будет запускать вашу переменную через поиск типов, чтобы убедиться, что это правильный тип или может быть неявно приведен к нужному типу. БД не просто бросает переменную типа Any в таблицу или представление. Он должен встроить правильную типизацию в план выполнения. Поэтому, если вы не предоставите тип, вы просите БД «выяснить это».
Принимая во внимание, что, когда вы указываете тип, который вы опережаете или предварительно определяете тип данных. Механизм знает, что драйвер представляет переменную определенного типа, и может затем использовать ее напрямую или получить ее напрямую.
Помните, что хотя безопасность - это хорошая причина для использования cfqueryparam, это только одна из причин. Другая причина заключается в создании правильно подготовленных операторов, которые могут эффективно выполняться, и в идеале «выталкивать» кэш плана выполнения на сервер БД.