Перегляд за місяцем: June 2007

 

Подключение MySQL

Когда я начал работать с 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.

Создаем таблицу в базе для проверки:

CREATE TABLE test_table (
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 ('ПРЕВЕД!!!!');
и скриптик index.cfm:
<cfquery name="test_query" datasource="test_mysql_datasource">
   SELECT * FROM test_table
</cfquery>
<cfdump var="#test_query#">

запускаем это все...

Собственно все, более подробно, со ссылками на механизм развертывания CF под Linux можно почитать тут.

В CFMX8 все будет еще проще, как было сказано, там есть свои коннекторы для mySQL и они прекрасно работают.

Автор: Владимир Каленюк | Опубліковано: 24.06.2007 о 07:05 | Категорії: Settings -