小编uki*_*its的帖子

PDO_ODBC和unixODBC无法将MSSQL与非默认端口连接

我必须在php/linux环境中连接两个MSSQL服务器.所以我决定使用unixODBC和PDO_ODBC.

  • server1上的mssql:10.10.10.5:1433

  • server2上的mssql:10.10.10.8 : 14233(非默认端口号)

我认为PDO_ODBC或unixODBC存在端口问题.我在下面尝试了一些代码.

这段代码工作正常.连接成功.

$db = new PDO('odbc:Driver=SQL Server Native Client 11.0; Server=10.10.10.5; Port=1433; Database=dbname; UID=uid; PWD=pwd');
Run Code Online (Sandbox Code Playgroud)

这段代码不起作用.连接失败.

$db = new PDO('odbc:Driver=SQL Server Native Client 11.0; Server=10.10.10.8; Port=14233; Database=dbname; UID=uid; PWD=pwd');
Run Code Online (Sandbox Code Playgroud)

奇怪的是,这个代码也适用于错误的值.:(

$db = new PDO('odbc:Driver=SQL Server Native Client 11.0; Server=10.10.10.5; Port=14233; Database=dbname; UID=uid; PWD=pwd');
Run Code Online (Sandbox Code Playgroud)

我得出结论,有人忽略了PDO的dsn上的端口设置.

我也尝试过使用其他设置 /etc/odbc.ini

[odbc-erp]
Driver=SQL Server Native Client 11.0
Description=MSSQL
Trace=Yes
Server=10.10.10.8
Port=14233
Database=dbname
Run Code Online (Sandbox Code Playgroud)

并且,此代码没有建立连接.

$dbh = new PDO('odbc:odbc-erp', $uid, $pwd);
Run Code Online (Sandbox Code Playgroud)

错误信息:

DB Error: SQLSTATE[HYT00] SQLConnect: 0 …
Run Code Online (Sandbox Code Playgroud)

sql-server port unixodbc pdo-odbc

2
推荐指数
1
解决办法
2804
查看次数

标签 统计

pdo-odbc ×1

port ×1

sql-server ×1

unixodbc ×1