在Linux下通过PDO连接到MS SQL Server 2008的PHP方法

4
我需要从Ubuntu上的PHP连接到MS SQLServer 2008服务,并希望使用PDO完成此操作。我相信我已经安装了所有必需的库,并且确实能够在命令行上使用tsql和在代码中使用mssql_connect()进行连接。我无法弄清楚正确的DSN是什么,或者是否有任何我漏掉的附加的PDO特定配置步骤。
我正在使用以下DSN(其中$db*变量填入其适当的值):
odbc:Driver=FreeTDS;SERVER=$dbServer;DATABASE=$dbSchema;UID=$dbUser;PWD=$dbPasswd"

我的错误信息是:

PHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[IM002] SQLDriverConnect: 0 [unixODBC][Driver Manager]Data source name not found, and no default driver specified' in /home/timothy/test.php:4
Stack trace:
#0 /home/timothy/test.php(4): PDO->__construct('odbc:Driver=Fre...')
#1 {main}
  thrown in /home/timothy/test.php on line 4

我漏看了哪些额外的配置步骤呢?谢谢提前帮助。

在你的php.ini文件中,'mssql.secure_connection'这个设置是什么?如果关闭了,请打开并重新测试。确保同时重启Apache。 - Phill Pafford
mssql.secure_connection 已关闭。但请注意,mssql_* 函数可以正常工作,我只是想使用 PDO 接口。 - Timothy
1个回答

1

如果你可以使用tsql和mssql扩展连接,那么你不需要任何额外的配置。你可能只是没有正确的dsn。这个文档应该有所帮助。尝试 new PDO("dblib:host=xx.xx.xx.xx;dbname=mydatabase", "username", "password");


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接