【发布时间】:2014-06-08 14:11:04
【问题描述】:
我在运行 Centos 6.5x64 的 Cpanel 服务器上安装了 FreeTDS 0.91,ODBC。一切似乎都运行良好,我可以使用以下方式连接到远程 MSSQL 2012 服务器:
/usr/local/freetds/bin/tsql -S sqlserver -U test -P mypassword
并成功在数据库中执行查询。
我也可以通过以下方式连接:
isql -v sqlserverdatasource test mypasswordhere
但由于某种原因/usr/local/freetds/bin/tsql -LH server.ip.here
当证明我可以使用上述其他方法时,不返回没有多大意义的信息或错误。
所以现在当我从机器上的 cpanel 帐户运行测试脚本时,我得到:
Unknown host machine name (severity 2)
这是测试脚本:
//Database connection function.
function getConnection() {
try {
//$dbconnect = new PDO("sqlserver:Server=server.ip.here,1433;Database=dbname", "user", "password");
$dbconnect = new PDO("dblib:host=server.ip.here,1433;dbname=dbname", 'user', 'password');
} catch (PDOException $e) {
echo "CONNECTION ERROR.<br>Error message:<br><br>" . $e->getMessage();
die();
}
if (!$dbconnect) {
die('Cant connect to database. Please try again later!');
}
else{
echo "i'm in!";
return $dbconnect;
}
}
第一个注释行是使用 sqlserv 的旧行,我发现它根本不起作用,因为 x64 操作系统。我还尝试在用户周围使用"" 并通过以及根本没有标记。
php -m 确实显示 PDO 和 pdo-dblib。
有什么好主意吗?
更新:已修复。我错过了freetds.conf:
[global]
# TDS protocol version
tds version = 8.0
最初设置为 4.5 而不是 8。
【问题讨论】:
标签: php sql-server pdo odbc cpanel