我有一个在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得到了这个提示。
我认为我的连接字符串错误,但为什么我没有收到错误消息?
答案 0 :(得分:0)
要使用PDO连接到MSSQL,您可以使用SQL Server Driver for PHP或PDO_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
不要忘记重新启动服务器(与重新启动服务不同)。我希望它会有所帮助。