将sles apache上的php pdo连接到mssql数据库

时间:2014-08-26 06:58:40

标签: php sql-server pdo connection suse

我有一个在SLES11 Apache上运行的PHP(v.5.3.17)插件,用于向数据库发送查询。我安装了unixodbc(版本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-database:

#>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找到了一条指令。

当我执行Skript时,我既没有消息“建立连接”也没有消息“没有建立连接”。我只得到命令提示符“&gt;”。 我也通过连接到虚假IP得到了这个提示。

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

extension=php_pdo_sqlsrv_52_nts.dll

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