Подключение MySQL
Владимир Каленюк - 06/24/2007
Когда я начал работать с ColdFusion, меня честно говоря удивило, почему такая удобная штука не нашла широкого применения на постсоветском пространстве. Ну хорошо, nix-системы еще куда ни шло, но Windows... по моему CF явно удобнее ASP (прежде всего для изучения и работы) при той же функциональности. А дело было в том, что CF якобы не дружил с русским языком. Это мне показалось странно, CFMX7 работает на java машине, а значит должна быть поддержка юникода (хотя некоторые утверждали что проблемы с кодироваками именно из за java, но в самих то скриптах никаких проблем с кодировками нет, и это меня насторожило). Я копнул поглубже первых двух страниц гугла, и кое чего нашел, и сейчас постараюсь рассказать об этом более-менее доступным языком.
Итак, ColdFusion MX7 (в отличии от Beta 8) не имеет собственных коннекторов для связи с mySQL. Можно, конечно поставить ODBC коннектор отсюда , версии выше к сожалению нет, но более "старшие" версии базы с ним работать будут. Но тогда о юникоде можно забыть, а оно нам надо? =)
Поэтому лучше воспользоваться другим путем - создать датасорс через JDBC. Для этого идем в администрирование датасорсов, вбиваем имя, в выпадающем списке драйверов выбираем other.
Вот, в Windows этого уже вполне достаточно для работы.
Если сервер ColdFusion (или BlueDragon) развернут под Linux, то нужно, то JDBC URL должна выглядеть так jdbc:mysql://127.0.0.1:8500/test_database?useUnicode=true&characterEncoding=UTF-8
можно вынести параметры в Connection String.
Создаем таблицу в базе для проверки:
test_field VARCHAR (255)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
INSERT INTO test_table(test_field) VALUES ('ПРЕВЕД!!!!');
INSERT INTO test_table(test_field) VALUES ('ПРЕВЕД!!!!');
INSERT INTO test_table(test_field) VALUES ('ПРЕВЕД!!!!');
INSERT INTO test_table(test_field) VALUES ('ПРЕВЕД!!!!');
SELECT * FROM test_table
</cfquery>
<cfdump var="#test_query#">
запускаем это все...
Собственно все, более подробно, со ссылками на механизм развертывания CF под Linux можно почитать тут.
В CFMX8 все будет еще проще, как было сказано, там есть свои коннекторы для mySQL и они прекрасно работают.