我正在尝试使用Zend Framework和SQL server 2005 express(通过安装wamp的Pdo_Mssql),但似乎pdo无法连接到SQL。这是我的代码:
require '../application/bootstrap.php';
try {
$db = Zend_Db::factory('Pdo_Mssql', array(
'host' => 'localhost',
'username' => 'sa',
'password' => 'verystrongpass',
'dbname' => 'msdb'
));
$db->getConnection();
} catch (Zend_Db_Adapter_Exception $e) {
$e->getMessage();
} catch (Zend_Exception $e) {
$e->getMessage();
}
$sql = 'SELECT * FROM table';
$result = $db->fetchAll($sql);
echo "----------------" . var_dump($result);
并且错误结果总是:
致命错误:未捕获异常'Zend_Db_Adapter_Exception',消息为'SQLSTATE [01002]无法连接:SQL Server不可用或不存在。 (严重级9)'在C:\ wamp \ bin \ php \ php5.2.5 \ lib \ Zend \ Db \ Adapter \ Pdo \ Abstract.php:130堆栈跟踪:#0 C:\ wamp \ bin \ php \ php5。 2.5 \ lib \ Zend \ Db \ Adapter \ Pdo \ Mssql.php(135):Zend_Db_Adapter_Pdo_Abstract - > _ connect()
1 C:\ wamp \ bin \ php \ php5.2.5 \ lib \ Zend \ Db \ Adapter \ Abstract.php(389):Zend_Db_Adapter_Pdo_Mssql - > _ connect()
2 C:\ wamp \ bin \ php \ php5.2.5 \ lib \ Zend \ Db \ Adapter \ Pdo \ Abstract.php(205):Zend_Db_Adapter_Abstract-> query('SELECT * FROM t ...',Array)
3 C:\ wamp \ bin \ php \ php5.2.5 \ lib \ Zend \ Db \ Adapter \ Abstract.php(616):Zend_Db_Adapter_Pdo_Abstract-> query('SELECT * FROM t ...',Array)
4 C:\ Documents and Settings \ Luca \ Documenti \ Workspace \ web \ db \ public \ index.php(27):Zend_Db_Adapter_Abstract-> fetchAll('SELECT * FROM t ...')#5 {main}抛出C语言第130行:\ wamp \ bin \ php \ php5.2.5 \ lib \ Zend \ Db \ Adapter \ Pdo \ Abstract.php
所以任何人都有一些ZF + SQL服务器的经验,SQL服务器需要一些特殊的配置吗?在istallation时间我只指定使用默认的istance并使用混合身份验证。而且我可以通过Microsoft SQL server management studio express成功连接db。
在SQLEXPRESS的命名实例上安装的所有SQL Server Express而不是默认实例 - 请参阅this。
所以你的主人应该是这样的
'host' => 'localhost\SQLEXPRESS'
你可以检查PHP.ini文件,你启用Pdo_Mysql.dll
如果没有删除“;”在Pdo_Mssql.dll前面
Dan
我想你的
'host' => 'localhost\SQLEXPRESS'
配置
应该是这样的:
'host' => 'computer_name\SQLEXPRESS'