views:

668

answers:

2

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

+3  A: 

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 Myqli adapter, but needs php_mysqli extension to be installed.

 $_db1 = Zend_Db::factory('Pdo_Mysql', $configArray );
 // uses Pdo Myql 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.

farzad
+1 Yes, ZF does not provide an adapter for ext/mysql because that extension lacks many features that make it hard to be compatible with the other ZF db adapters. You were intrepid to implement a subset of functionality to make your own ext/mysql adapter, but you can understand why this isn't part of ZF.
Bill Karwin
@farzad - Mind posting your Mysql adapter files? Thanks to Bill for the link.
meder
A: 

Thanks for solving my problem, i was putting mysql instead Pdo_Mysql

shahzad