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通常需要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=****
相关文章推荐
- 连接目标数据库(oracle)时,遇到了1521端口不给开放的问题,绕道从jboss和ejb解决了这个问题。
- Python连接mssql数据库编码问题解决方法
- 关于打开现有项目时数据库连接配置遇到的问题 连接字符串中的数据源值指定未安装的SQL Server的实例。要解决此问题,可选择安装匹配的SQL Server实例或修改连接字符串中的数据源值
- 使用mssql2008新特性(存储过程参数类型使用"用户自定义表"来实现批量DML更新多表)解决项目里遇到的性能问题
- 使用JDBC连接数据库遇到的问题,以及查找到的解决方法
- SQL Server 2005数据库连接遇到的问题及解决方法。。
- asp中遇到的几个问题——数据库连接,几个常见控件的使用问题及其解决
- Coding编译连接过程中遇到的问题及解决方法(iOS)
- 使用MyEclipse 6.0连接SQL 2000和2005数据库(JDBC) 遇到的问题,急需解决
- 解决php5.3不能连接mssql数据库问题
- mysql安装版和解压版安装过程遇到1067的问题,和数据库乱码问题 解决办法
- Python连接mssql数据库编码问题解决方法
- 蘑菇街TeamTalk编译连接过程中遇到的问题及解决方法(iOS)
- 蘑菇街TeamTalk编译连接过程中遇到的问题及解决方法(iOS)
- TeamTalk编译连接过程中遇到的问题及解决方法(iOS)(1)
- kerkee demo编译连接过程中遇到的问题及解决方法(iOS)
- 从传统数据库访问转向LINQ过程中遇到的一些问题和解决方法
- ireport连接数据库、工具使用过程出现的问题及解决方法
- Hpunix下jdbc连接数据库问题解决过程
- informatica 9.6.1 安装过程中数据库连接失败,通过查看安装日志对症解决问题