问题
I get the following error message:
Fatal error: Uncaught exception 'Zend_Exception' with message 'File "Zend\Db\Adapter\Mysql.php" does not exist or class "Zend_Db_Adapter_Mysql" was not found in the file' in C:\wamp\www\VPZ\Lib\Zend\Loader.php:88 Stack trace: #0 C:\wamp\www\VPZ\Lib\Zend\Db.php(247): Zend_Loader::loadClass('Zend_Db_Adapter...') #1 C:\wamp\www\VPZ\VPZ_Grid\core\vpz_datagrid.class.php(16): Zend_Db::factory('mysql') #2 C:\wamp\www\vpz_test.php(9): VPZ_DataGrid->ConnectDb(Object(VPZ_Connector)) #3 {main} thrown in C:\wamp\www\VPZ\Lib\Zend\Loader.php on line 88
I dont know what about this and find directory in "Zend\Db\Adapter\Mysql.php" not have but have Mysqli.php
回答1:
you are trying to create a Zend_Db object with MySQL adapter, I think. there is no MySQL adapter by default for Zend Framework. you should use MySQLi adapter, or Pdo_Mysql. checkout your code, where you are creating your Zend_Db object. pass in 'Pdo_Mysql' as your adapter name, instead of 'Mysql':
$_db = Zend_Db::factory('Mysql', $configArray );
// uses mysql adapter, which is not available by default.
$_db1 = Zend_Db::factory('Mysqli', $configArray );
// uses mysqli adapter, but needs php_mysqli extension to be installed.
$_db1 = Zend_Db::factory('Pdo_Mysql', $configArray );
// uses PDO mysql adapter which is much better, but needs PDO to be installed, which most of times is installed.
you can write your own adapter for Zend_Db. write a class and extend the Zend_Db_Adapter_Abstract. but there are some problems to implement Mysql adapter, because PHP_MySQL extension (that will provide PHP with mysql_* functions) does not support many features (like client stored procedures, ...). so you can not implement all of methods that other Zend_Db_Adapters have. I've done this before. I wanted to use my application, that used Zend Framework, and I hosted it on a server that PDO and Mysqli were not installed. I implemented a Mysql adapter for Zend_Db, but because I knew which methods are not implemented, I avoided calling those. the best thing is if you could have PDO installed, and use Pdo_* adapters.
来源:https://stackoverflow.com/questions/700354/i-got-some-zend-message-error-when-working-zend-database