Привет мне нужна помощь с Symfony 3 и MS SQL Server:Использование MS SQL с Symfony 3
Я использую Symfony 3 и хотите подключиться к MS SQL Server, я сделал некоторые исследования и выяснили, что он не поддерживается по умолчанию, но есть некоторые доступные Bundles.
После попытки некоторых из них я нашел один сверток, который частично работал для меня (realestateconz/MSSQL-расслоения), но я получаю сообщение об ошибке каждый раз, когда я пытаюсь запроса DB (я форматировал его более читаемым):
Uncaught PHP Exception Doctrine\DBAL\DBALException: An exception occurred while executing
'SELECT
t0.id AS id_1,
t0.username AS username_2
FROM user t0
WHERE t0.username = ?' with params ["testusername"]:
SQLSTATE[HY000]: General error: 156 General SQL Server error:
Check messages from the SQL Server [156] (severity 15) [(null)]
codeline выглядит следующим образом
$user = $em->getRepository('AppBundle:User')->findBy(array('username' => $username));
Мое учение и фреймворка настройки выглядит следующим образом:
#config.yml
doctrine:
dbal:
driver_class: Realestate\MssqlBundle\Driver\PDODblib\Driver
host: "%database_host%"
#port: "%database_port%"
dbname: "%database_name%"
user: "%database_user%"
password: "%database_password%"
#charset: UTF8
#parameters.yml
parameters:
database_host: myserver
database_name: database #without schema
database_user: user
database_password: pw
Порт и Charset в config.yml закомментированы, потому что я нашел что-то здесь в stackoverflow о доктрине, использующей MySQL, когда определены порт и кодировка (не помню, где именно). В параметрах.yml я не могу добавить схему для БД (полный путь к таблице «Пользователь» - это database.web. [Пользователь]), потому что он будет работать в другой ошибке.
Веб-сервер запускает Ubuntu 16.04 с apache2, php5.6 (включая пакет php5-sybase), и я использую freetds для подключения к MSSQL-серверу (вручную работает соединение).
Вот мои настройки FreeTDS:
[MYSERVER]
host = myserveradress
port = 1433
tds version = 8.0
client charset = UTF-8
text size = 20971520
Насколько я понял, доктрина создает неправильный SQL-запрос из одной строки кода (MySQL-Syntax вместо MSSQL-синтаксиса), так, что могу ли я это исправить? Или есть еще один способ успешного подключения и запроса MSSQL-Server на Linux с Symfony 3?
Попробуйте «драйвер pdo_sqlsrv», упомянутый в этом [pdo_sqlsrv] (http://stackoverflow.com/questions/14648266/connect-symfony2-to-ms-sql-server). Это, вероятно, проще реализовать, чем упомянутый выше пакет. –
Существует один комментарий, в котором говорится, что драйвер sqlsrv предназначен только для Windows. Однако я нахожусь в Linux (Ubuntu 16.04) – levanth
Я тоже видел эту ссылку: [Ссылка] (https://dunglas.fr/2014/01/connection-to-a-ms-sql-server-from-symfony-doctrine- на Mac или Linux-/). Если вы попробовали простой тест, упомянутый там: 'php bin/console doctrine: query: sql" SELECT * FROM MY_TABLE "'. Также убедитесь, что у вас есть все требования Symfony с 'php bin/symfony_requirements'. –