Hi there Potrzebuję pomocy z Symfony 3 oraz MS SQL Server:Korzystanie z MS SQL Symfony 3
Używam Symfony 3 i chcesz połączyć się z MS SQL Server, Robiłem rozeznanie i okazało się, że nie jest obsługiwane domyślnie, ale istnieje kilka pakietów do wykorzystania.
Po wypróbowaniu niektóre z nich znalazłem jeden pakiet, który częściowo pracował dla mnie (realestateconz/MSSQL-wiązki), ale pojawia się komunikat o błędzie, za każdym razem staram się kwerendy DB (I sformatowany być bardziej czytelny):
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 wygląda następująco
$user = $em->getRepository('AppBundle:User')->findBy(array('username' => $username));
Moja nauka i symfony ustawień wygląda następująco:
#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
Port i zestaw znaków w config.yml są skomentowane, ponieważ znalazłem coś tutaj na temat stackoverflow o doktrynie używającej MySQL, gdy port i zestaw znaków są zdefiniowane (nie pamiętam gdzie dokładnie). W parameters.yml nie mogę dodać schematu dla DB (pełna ścieżka do tabeli "User" to database.web. [User]), ponieważ będzie działać w innym błędzie.
Serwer sieci Web uruchamia Ubuntu 16.04 z apache2, php5.6 (w tym pakiet php5-sybase) i używam freetdów do łączenia się z serwerem MSSQL (ręczne podłączanie działa).
Oto moje ustawienia FreeTDS:
[MYSERVER]
host = myserveradress
port = 1433
tds version = 8.0
client charset = UTF-8
text size = 20971520
O ile dobrze zrozumiałem, Doctrine generuje zły zapytania SQL z jednej linii kodu (MySQL składni zamiast MSSQL składni), więc to, co czy mogę to naprawić? Czy istnieje inny sposób na pomyślne połączenie i zapytanie serwera MSSQL na Linuksie za pomocą Symfony 3?
Wypróbuj sterownik "pdo_sqlsrv" wymieniony w tym pliku [pdo_sqlsrv] (http://stackoverflow.com/questions/14648266/connect-symfony2-to-ms-sql-server). Prawdopodobnie jest łatwiejsze do wdrożenia niż pakiet wspomniany powyżej. –
Istnieje jeden komentarz, który mówi, że sterownik sqlsrv jest tylko dla systemu Windows. Jednak jestem na Linuksie (Ubuntu 16.04) – levanth
Widziałem również ten link: [Link] (https://dunglas.fr/2014/01/connection-to-a-msq-sql-server-from-symfony-doctrine- on-mac-or-linux /). Zastanawiasz się, czy wypróbowałeś prosty test wspomniany tam: 'php bin/console doctrine: query: sql" SELECT * FROM MY_TABLE "'. Sprawdź również, czy masz wszystkie wymagania Symfony z 'php bin/symfony_requirements'. –