【问题标题】:connect php pdo on sles apache to mssql database将 sles apache 上的 php pdo 连接到 mssql 数据库
【发布时间】:2014-10-19 10:11:45
【问题描述】:

我有一个在 SLES11 Apache 上运行的 PHP (v. 5.3.17) 插件,用于向数据库发送查询。我已经安装了 unixodbc (ver. 2.2.12)。

我想通过 PHP:PDO 将插件连接到远程 MSSQL 数据库以运行一些查询。

PDO:ODBC 支持已启用:

PDO support enabled 
PDO drivers  odbc, mysql, pgsql, sqlite, sqlite2  

我通过 Telnet 测试了连接。我得到了一个积极的结果。

telnet> open 10.22.77.18 1433
Trying 10.22.77.18...
Connected to 10.22.77.18.
Escape character is '^]'.

我也可以通过 tsql 连接到 sql 数据库:

#>tsql -S ms-sql -U <user> -P <passwort>
locale is "LC_CTYPE=de_DE.UTF-8;LC_NUMERIC=C;LC_TIME=C;LC_COLLATE=C;LC_MONETARY=C;LC_MESSAGES=C;LC_PAPER=C;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_MEASUREMENT=C;LC_IDENTIFICATION=C"
locale charset is "UTF-8"
using default charset "UTF-8"
1>

通过 isql 我得到以下错误:

# isql -v  ms-sql
[IM002][unixODBC][Driver Manager]Data source name not found, and no default driver specified
[ISQL]ERROR: Could not SQLConnect

我在Connect Linux ODBC with MSsql database上找到了一条说明。

当我执行脚本时,我既没有收到“已建立连接”的消息,也没有收到“未建立连接”的消息。我只得到命令提示符“>”。 我也是通过连接到虚假 IP 来得到这个提示的。

我认为我的连接字符串错误,但为什么我没有收到错误消息?

【问题讨论】:

    标签: php sql-server pdo connection suse


    【解决方案1】:

    要使用 PDO 连接到 MSSQL,您可以使用 SQL Server Driver for PHPPDO_ODBC

    the manual for PDO_SQLSRV 中的一条评论提到,微软已经有一段时间没有更新他们的驱动程序了,官方版本只存在于 5.2、5.3 和 5.4。

    【讨论】:

      【解决方案2】:

      下载SQL Server driver 并将其解压缩到您的PHP 扩展目录。然后激活php.ini 文件中的扩展。您需要将以下行添加到该文件(您需要适应下载的文件名):

      extension=php_pdo_sqlsrv_52_nts.dll
      

      不要忘记重新启动服务器(这与重新启动服务不同)。我希望它会有所帮助。

      【讨论】:

      • 我的网络服务器在 Linux 操作系统上运行。我认为 DLL 只适用于 Windows 操作系统。
      猜你喜欢
      • 2016-12-18
      • 2013-12-08
      • 2015-03-10
      • 2016-10-19
      • 2016-03-27
      • 2013-05-14
      • 2018-01-12
      • 2014-05-07
      • 1970-01-01
      相关资源
      最近更新 更多