Ya hice esto a través de una máquina con Windows pero obtuve un error en Linux. He estado buscando problemas similares e implementando todo lo que pude obtener, pero aún no tuve suerte.
Estoy tratando de conectar el servidor SQL en el siguiente entorno: Microsoft SQL Server 2016, Linux Centos 7.9.2009, PHP 7.3.29, ODBC Driver 13 y 17
Ya instalé y habilité PDO_ODBC y pdo_sqlsrv, confirmado a través de phpinfo.
A continuación se muestra mi cadena de conexión:
$conn = new PDO("odbc:Driver={ODBC Driver 13 for SQL Server};SERVER=192.168.99.237;Port:24115;Database=dbname;Uid=username;Pwd=password;")también probé
$conn = new PDO("odbc:Driver={ODBC Driver 13 for SQL Server};SERVER=192.168.99.237,24115;Database=dbname;", "username", "password")y el error es
SQLSTATE[HYT00] SQLDriverConnect: 0 [unixODBC][Microsoft][ODBC Driver 13 for SQL Server]Login timeout expiredCódigo actualizado y hallazgos:
Puedo conectarme a través de cli:
isql MSSQL username password tsql -S MSSQL -U 'username' -P 'password' osql -S mssql -U username -P passwordAl intentar a través de la siguiente cadena de conexión de PHP, aparece 'no se pudo encontrar el controlador'
new PDO("dblib:host=mssql;dbname=database", "username", "password");