Hi there Ho bisogno di aiuto con Symfony 3 e un MS SQL Server:Utilizzando MS SQL con Symfony 3
Sto usando Symfony 3 e voglia di connettersi a un server MS SQL, ho fatto qualche ricerca e ho scoperto che non è supportato di default ma ci sono alcuni pacchetti disponibili da usare.
Dopo aver provato alcuni di loro ho trovato un fascio, che in parte ha funzionato per me (realestateconz/mssql-fascio) ma ottengo un messaggio di errore ogni volta che provo ad interrogare il DB (ho formattato per essere più leggibile):
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)]
Il codeline assomiglia a questo
$user = $em->getRepository('AppBundle:User')->findBy(array('username' => $username));
mia dottrina e symfony impostazioni si presenta così:
#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
La porta e il set di caratteri in config.yml sono commentati perché ho trovato qualcosa qui su stackoverflow sulla dottrina usando MySQL quando la porta e il set di caratteri sono definiti (non ricordo dove esattamente). In parameters.yml non riesco ad aggiungere lo schema per il DB (il percorso completo alla tabella "Utente" è database.web. [Utente]) perché verrà eseguito in un altro errore.
Il server Web esegue Ubuntu 16.04 con apache2, php5.6 (incluso il pacchetto php5-sybase) e utilizzo freetds per connettersi al server MSSQL (collegando manualmente le opere).
Qui sono le mie impostazioni FreeTDS:
[MYSERVER]
host = myserveradress
port = 1433
tds version = 8.0
client charset = UTF-8
text size = 20971520
Per quanto ho capito, Doctrine genera il male SQL-Query dalla singola linea di codice (MySQL-sintassi, invece di MSSQL-Syntax), così che cosa posso fare per risolvere questo? O c'è un altro modo per connettere e interrogare con successo un server MSSQL su Linux con Symfony 3?
Provare il "driver pdo_sqlsrv" menzionato in questo [pdo_sqlsrv] (http://stackoverflow.com/questions/14648266/connect-symfony2-to-ms-sql-server). Probabilmente è più facile da implementare rispetto al pacchetto che hai menzionato sopra. –
C'è un commento che dice che il driver sqlsrv è solo per Windows. Comunque sono su Linux (Ubuntu 16.04) – levanth
Ho visto questo link anche: [Link] (https://dunglas.fr/2014/01/connection-to-a-ms-sql-server-from-symfony-doctrine- on-mac-o-linux /). Mi chiedo se hai provato il semplice test menzionato qui: 'php bin/console doctrine: query: sql" SELECT * FROM MY_TABLE "'. Verifica inoltre di avere tutti i requisiti di Symfony con 'php bin/symfony_requirements'. –