2009-03-31 6 views
-1

ich folgende Fehlermeldung:habe ich einige Fehler Zend Meldung beim Arbeits Zend Datenbank

 
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 

Ich weiß nicht, was über dieses und finden Verzeichnis in „Zend \ Db \ Adapter \ mysql.php“ nicht haben aber haben Mysqli.php

+0

formatieren Sie bitte Ihre Fragen, damit Benutzer nicht scrollen müssen! – markus

Antwort

3

Sie versuchen, ein Zend_Db Objekt mit MySQL-Adapter zu erstellen, denke ich. Für Zend Framework gibt es standardmäßig keinen MySQL-Adapter. Sie sollten den MySQLi-Adapter oder Pdo_Mysql verwenden. prüfe deinen Code, wo du dein Zend_Db-Objekt erstellst. Pass in 'Pdo_Mysql' angegeben, wie Sie die Adapternamen, statt '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. 

Sie Ihren eigenen Adapter für Zend_Db schreiben können. schreibe eine Klasse und erweitere Zend_Db_Adapter_Abstract. Es gibt jedoch einige Probleme bei der Implementierung des MySQL-Adapters, da die PHP_MySQL-Erweiterung (die PHP mit mysql_ * -Funktionen versorgt) nicht viele Funktionen unterstützt (wie gespeicherte Client-Prozeduren, ...). Du kannst also nicht alle Methoden implementieren, die andere Zend_Db_Adapter haben. Ich habe das schon mal gemacht. Ich wollte meine Anwendung benutzen, die das Zend Framework benutzt, und ich habe sie auf einem Server gehostet, auf dem PDO und Mysqli nicht installiert waren. Ich habe einen Mysql-Adapter für Zend_Db implementiert, aber weil ich wusste, welche Methoden nicht implementiert sind, habe ich es vermieden, diese zu nennen. das beste ist, wenn Sie PDO installiert haben könnten, und verwenden Sie Pdo_ * Adapter.

+0

+1 Ja, ZF stellt keinen Adapter für ext/mysql zur Verfügung, da dieser Erweiterung viele Funktionen fehlen, die es schwierig machen, mit den anderen ZF db Adaptern kompatibel zu sein. Sie waren unerschrocken, eine Teilmenge der Funktionalität zu implementieren, um Ihren eigenen ext/mysql-Adapter zu erstellen, aber Sie können verstehen, warum dies nicht Teil von ZF ist. –

+0

@farzad - Mind posten Sie Ihre Mysql-Adapter-Dateien? Danke an Bill für den Link. –