views:

1630

answers:

2

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.

+1  A: 

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'
Robert MacLean
Got the same problem.
Luca Bernardi
A: 

Hi,

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

PHP Outsourcing India
No spam footers please; they *will* be removed.
Marc Gravell