我在使用zend framework 1.12和zend studio连接数据库时遇到问题。 application.ini中连接到db的代码如下:
resources.db.adapter = pdo_mssql
resources.db.params.host = "IPADDRESS\SQLEXPRESS"
resources.db.params.username = sa
resources.db.params.password = XXXXXXXX
resources.db.params.dbname = namedb
resources.db.isDefaultTableAdapter = true
resources.db.params.pdoType = dblib
resources.db.params.charset= "utf-8"
数据库在线可用(我查了)但是我收到以下错误:
Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[01002] Adaptive Server connection failed (severity 9)
我知道这个错误是一个连接错误(pdo没有找到db),我在一个论坛中找到了tutorial应该有所帮助(它使用zend框架和相同的库和类型我在mac上使用db)。但我认为pdo类型是在我的机器上的其他地方配置的,因为我在Abstract.php中找不到:
protected $_pdoType = 'dblib';
pdo类型在application.ini中设置,我之前粘贴的代码。日志说错误在这些行中:
in /usr/local/zend/var/libraries/Zend_Framework_1/1.12.3/library/Zend/Db/Adapter/Pdo/Abstract.php:129
$this->_connection = new PDO(
$dsn,
$this->_config['username'],
$this->_config['password'],
$this->_config['driver_options']
);
但是我无法理解我错过了什么..有什么提示吗?
答案 0 :(得分:1)
我认为rob allen的这篇文章很有用,Zf Coonect To MSSQL
如详细描述,你可以使用以下,
resources.db.adapter = "sqlsrv"
resources.db.host = "host"
resources.db.dbname = "DatabaseName"
resources.db.isDefaultTableAdapter = true
resources.db.driver_options.ReturnDatesAsStrings = true
希望有助于
来自zend framwork官方文件here的相关DOC。
答案 1 :(得分:1)
尝试以下方法:
Microsoft SQL Server数据库连接信息
db.mssqlServer.adapter = PDO_MSSQL
db.mssqlServer.config.pdoType = dblib
db.mssqlServer.config.host = server_ip_or_url
db.mssqlServer.config.dbname = database_name
db.mssqlServer.config.username = "mssql_user"
db.mssqlServer.config.password = "mssql_password"
db.mssqlServer.config.driver_options.PDO::ATTR_ERRMODE=PDO::ERRMODE_EXCEPTION