【发布时间】:2018-07-22 09:49:23
【问题描述】:
我已经搜索并搜索了我的问题,但我仍然没有找到答案。我的问题是当通过 PHP PDO/ODBC 连接连接到我的 SQL Server 数据库时,我总是收到错误消息:“[Microsoft][ODBC Driver Manager] Driver's SQLAllocHandle on SQL_HANDLE_ENV failed, SQL state IM004 in SQLConnect” .但是我与 Oracle 或 MySQL 数据库的连接完全没有问题,只有 SQL Server 数据库。
这是我测试连接的代码:
$dbh = null;
try
{
$dbh = new PDO('oci:dbname='.TNS, DB_USERNAME, DB_PASSWORD, null);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $pe) {
//var_dump($pe->getMessage());
}
if (!is_null($dbh)) {
echo "Oracle Connection success";
}
else {
echo "Oracle cannot connect";
}
echo "<br />";
$dbh = null;
try
{
$dbh = new PDO('mysql:host=localhost;dbname=db_test', 'root', '', null);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $pe) {
//var_dump($pe->getMessage());
}
if (!is_null($dbh)) {
echo "MySQL Connection success";
}
else {
echo "MySQL cannot connect";
}
echo "<br />";
$dbh = null;
try
{
$dbh = new PDO('sqlsrv:server=XXXXX;Database=xxxxxxx', 'xxxx', 'xxxx', null);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}
catch(PDOException $pe) {
//var_dump($pe->getMessage());
}
if (!is_null($dbh)) {
echo "MySQL Connection success";
}
else {
echo "SQL Server cannot connect";
}
上面的结果显示为:
- Oracle 连接成功
- MySQL 连接成功
- SQL Server 无法连接
我尝试重新安装 XAMPP 并复制新的 PHP 的 SQL Server 库。但错误仍然相同。正如我上面提到的,我一直在寻找解决方案,但仍然没有运气。我真的希望,我能为我的问题找到一个解决方案,或者至少给我一个开始的线索。哦,是的,我差点忘了,这个错误发生在 Windows 10 更新之后,在此之前,我与 SQL Server 的连接很好。所以,我想知道这个问题是否与 Windows 更新有关。我真的不知道。
对不起我的英语语言,非常感谢您的帮助。我真的很感激任何答案
【问题讨论】:
标签: php sql-server windows xampp