Zend Framework and SQL Server

2019-06-13 04:01发布

I'm trying to use Zend Framework with SQL server 2005 express (through Pdo_Mssql with wamp installation) but seem that pdo can't connect to SQL. This is my code:

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);

and the error result is always:

Fatal error: Uncaught exception 'Zend_Db_Adapter_Exception' with message 'SQLSTATE[01002] Unable to connect: SQL Server is unavailable or does not exist. (severity 9)' in C:\wamp\bin\php\php5.2.5\lib\Zend\Db\Adapter\Pdo\Abstract.php:130 Stack trace: #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} thrown in C:\wamp\bin\php\php5.2.5\lib\Zend\Db\Adapter\Pdo\Abstract.php on line 130

So anyone have some experience with ZF + SQL server, SQL server need some special configuration? In istallation time i've only specify to use the default istance and to use mixed authentication. Moreover I can successful connect with db through Microsoft SQL server management studio express.

3条回答
做自己的国王
2楼-- · 2019-06-13 04:33

I think your

'host' => 'localhost\SQLEXPRESS' configuration

should be like :

'host' => 'computer_name\SQLEXPRESS'

查看更多
三岁会撩人
3楼-- · 2019-06-13 04:39

Can you pls check in you PHP.ini file, that you enabled the Pdo_Mssq.dll

If not remove the ";" in front of the Pdo_Mssql.dll

Dan

查看更多
太酷不给撩
4楼-- · 2019-06-13 04:54

All SQL Server Express installations on a named instance of SQLEXPRESS rather than a default instance - see this.

So your host should look like

'host'     => 'localhost\SQLEXPRESS'
查看更多
登录 后发表回答