我已经看到了许多类似的问题,但通常可以通过访问服务器来安装额外的软件包(如FreeTDS)来解决这些问题。我们没有这样的访问权限,因为linux服务器托管了1and1。
我的代码(来自此处其他人的早期问题)是:
try {
$hostname = "xx.xx.xx.xx";
$port = xxxxx;
$dbname = "ClientDatabase";
$username = "uuuu";
$pw = "pppp";
$dbh = new PDO ("dblib:host=$hostname:$port;dbname=$dbname","$username","$pw");
} catch (PDOException $e) {
echo "Failed to get DB handle: " . $e->getMessage() . "\n";
exit;
}
$stmt = $dbh->prepare("select name from master..sysdatabases where name = db_name()");
$stmt->execute();
while ($row = $stmt->fetch()) {
print_r($row);
}
unset($dbh); unset($stmt);
我得到的错误信息是:
Failed to get DB handle: could not find driver
MSSQL服务器是可访问的,因此我可以根据需要添加功能。 MSSQL服务器也运行IIS7但不运行PHP。我对IIS7知之甚少但是在那里运行PHP脚本而不是托管的linux盒子会更容易吗?
有人可以建议我是否可以实际连接到MSSQL服务器?
提前致谢,
戴夫
答案 0 :(得分:0)
你试过mssql_connect吗?
以下是语法: mssql_connect([string $ servername [,string $ username [,string $ password [,bool $ new_link = false]]]])
在你的情况下,它将是:
$link = mssql_connect($hostname, $username, $pw);
mssql_select_db($dbname, $link);
请注意,$ hostname应包含MSSQL实例名称。例如' KALLESPC \ SQLEXPRESS'
答案 1 :(得分:0)
经过多次反复试验后我才进入。
try {
$hostname = "localhost";
$port = 123456;
$dbname = "ClientDatabase";
$username = "uuuu";
$pw = "pppp";
$dbh = new PDO ("sqlsrv:Server=$hostname,$port;Database=$dbname","$username","$pw");
} catch (PDOException $e) {
echo "Failed to get DB handle: " . $e->getMessage() . "\n";
exit;
}
$stmt = $dbh->prepare("select name from master..sysdatabases where name = db_name()");
$stmt->execute();
while ($row = $stmt->fetch()) {
print_r($row);
}
unset($dbh); unset($stmt);
感谢那些回答的人和那些回答他人类似问题的人。到了那里......最终。
干杯
戴夫