Мне нужно использовать MS SQL Server 2008 для хранения данных приложения PHP CAKE.
Я успешно установил драйвер PDO от Microsoft для PHP и источник данных dbo для php cake.
Мое приложение связывается с сервером.
Но у меня есть проблемы с кодировкой, и я не знаю, как управлять.
Я провел некоторое исследование, и оказалось, что SQL-сервер на самом деле не поддерживает utf8 для полей varchar (если я правильно понял).
SQL Server сообщает мне с запросом «SELECT SERVERPROPERTY ('Collation')", что у меня есть кодировка French_CI_AS (которая кажется правильной).
Я сделал несколько настроек поиска php cake, и, похоже, мы можем указать параметр «encoding» для конфигурации базы данных (в app / config / database.php). Я попытался установить его на French_CI_AS и utf8, но это ничего не меняет, у меня все еще есть нераспознанные символы на моей странице.
Я не уверен, что источник данных сервера sql на самом деле использует этот параметр, поэтому я искал в dbo_sqlsrv.php и нашел свойство "charset", поэтому я установил для него значение "SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES". ", но теперь у меня другая ошибка, торт больше не находит мой стол:
Предупреждение (2): sqlsrv_query () ожидает, что параметр 1 будет ресурсом,
логическое значение [CORE \ cake \ libs \ model \ datasources \ dbo \ dbo_sqlsrv.php,
строка 185] Предупреждение (512): ошибка SQL: неверный параметр был передан
sqlsrv_query. [CORE \ cake \ libs \ model \ datasources \ dbo_source.php, строка
684] Запрос: ВЫБЕРИТЕ TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
Ошибка таблицы базы данных: Мониторы таблицы базы данных для модели
Moniteur не был найден. Обратите внимание: если вы хотите настроить эту ошибку
сообщение, создайте приложение \ views \ errors \ missing_table.ctp
Но если я сам выполню эту команду, я отчетливо вижу эту таблицу:
TABLE_NAME
Гарагисты
moniteurs
(затронуто 2 строк)
и, как вы можете видеть, в именах таблиц у меня даже нет символов не-ascii.
Так что я немного растерялся, и я не знаю, где искать сейчас, у вас есть идеи?
Спасибо!