您的位置:首页 > 编程语言 > PHP开发

Zend Framework 连接 MSSQL数据库遇到的问题及解决过程

2016-09-23 15:10 363 查看
依据网站上查到的资料连接MSSQL数据库的步骤如下

注:zend framework通常需要php5.3以上的版本,但php5.3以上版本已经不具备对pdo_mssql数据库的支持,需要手动下载微软的数据库驱动,具体操作方法参见

http://blog.csdn.net/sptoor/article/details/7704991

1.configs目录的application.ini中添加以下内容

[mssql]

db.adapter=PDO_MSSQL

db.params.host=localhost

db.params.username=sa

db.params.password=****

db.params.dbname=****

2. 连接代码信息可以添加至控制器的init函数中

$url=constant("APPLICATION_PATH").DIRECTORY_SEPARATOR.'configs'.DIRECTORY_SEPARATOR.'application.ini';

$dbconfig=new Zend_Config_Ini($url,"mssql");

$db=Zend_Db::factory($dbconfig->db);

var_dump($db);

$db->query("SET NAMES UTF-8");

Zend_Db_Table::setDefaultAdapter($db);

$res = $db->fetchAll("select * from tablename");

echo print_r($res);

依据操作后无法连接数据库, zend 测试页面无法正常显示

错误信息如下:

[23-Sep-2016 14:55:02] PHP Fatal error:  Uncaught exception 'Zend_Db_Adapter_Exception' with message 'The mssql driver is not currently installed' in D:\WWWRoot\test\library\Zend\Db\Adapter\Pdo\Abstract.php:112

Stack trace:

#0 D:\WWWRoot\test\library\Zend\Db\Adapter\Pdo\Mssql.php(137): Zend_Db_Adapter_Pdo_Abstract->_connect()

#1 D:\WWWRoot\test\library\Zend\Db\Adapter\Abstract.php(459): Zend_Db_Adapter_Pdo_Mssql->_connect()

#2 D:\WWWRoot\test\library\Zend\Db\Adapter\Pdo\Abstract.php(238): Zend_Db_Adapter_Abstract->query('select * from k...', Array)

#3 D:\WWWRoot\test\library\Zend\Db\Adapter\Abstract.php(734): Zend_Db_Adapter_Pdo_Abstract->query('select * from k...', Array)

#4 D:\WWWRoot\test\application\Bootstrap.php(17): Zend_Db_Adapter_Abstract->fetchAll('select * from k...')

#5 D:\WWWRoot\test\library\Zend\Application.php(325): Bootstrap->__construct(Object(Zend_Application))

#6 D:\WWWRoot\test\library\Zend\Application.php(184): Zend_Application->setBootstrap('D:\WWWRoot\test...', 'Bootstrap')

#7 D:\WWWRoot\test\library\Zend\Application.php(92):  in D:\WWWRoot\test\library\Zend\Db\Adapter\Pdo\Abstract.php on line 112

错误信息是通过修改php.ini文件输出error日志查到的,测试页面不能显示错误信息

查看phpinfo() 查看



最后经过若干尝试将连接信息修改为:测试后通过。可以正常访问MSSQL数据库。

[mssql]

db.adapter=Sqlsrv

db.params.host=localhost

db.params.username=sa

db.params.password=****

db.params.dbname=****
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  zend framework php
相关文章推荐