porno porno izle rokettube
Seite 1 von 2 1 2 LetzteLetzte
Ergebnis 1 bis 20 von 24

Thema: Auf Datenbank per Adapter zugreifen funktioniert nicht

  1. #1
    Erfahrener Benutzer
    Registriert seit
    14.12.2009
    Beiträge
    440
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard Auf Datenbank per Adapter zugreifen funktioniert nicht

    Hi

    Will per Config Objekt bzw Adapter in meinem Model, welches eine UnterKlasse von zend_mail ist auf meine DB zugreifen....

    Hab mir das so vorgestellt:
    PHP-Code:
    $config = new Zend_Config_Ini(APPLICATION_PATH.'/configs/application.ini''production');
    $db Zend_Db::factory($config); 
    in meiner application.ini sind die Datenbankverbindunge definiert...

    leider kommt jedoch die meldung: Adapter name must be specified in a string

    Was mach ich falsch? habs so gemacht wie in der Doku hier: http://framework.zend.com/manual/de/...r.write.insert

    Auch wenn ich veruche
    PHP-Code:
    $db Zend_Db::factory('Mysqli'$config); 
    kommt: Configuration array must have a key for 'dbname' that names the database instance
    Geändert von ZF_Fan (20.01.2010 um 02:18 Uhr)

  2. #2
    Erfahrener Benutzer
    Registriert seit
    28.12.2006
    Beiträge
    9.966
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Dump mal $config
    Was mach ich falsch? habs so gemacht wie in der Doku hier: http://framework.zend.com/manual/de/...r.write.insert
    Du hast es genauso gemacht, wie beim "Daten einfügen"? Also bitte ...

  3. #3
    Erfahrener Benutzer
    Registriert seit
    14.12.2009
    Beiträge
    440
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    PHP-Code:
    [production]
    phpSettings.display_startup_errors 0
    phpSettings
    .display_errors 0
    includePaths
    .library APPLICATION_PATH "/../library"
    bootstrap.path APPLICATION_PATH "/Bootstrap.php"
    bootstrap.class = "Bootstrap"
    resources.frontController.controllerDirectory APPLICATION_PATH "/modules/default/controllers"
    resources.frontController.moduleDirectory   APPLICATION_PATH "/modules"
    resources.modules[] =
    resources.layout.layoutPath APPLICATION_PATH "/layouts"
    resources.view[] = 
    resources.db.adapter PDO_MYSQL
    resources
    .db.params.host localhost
    resources
    .db.params.username root
    resources
    .db.params.password root
    resources
    .db.params.dbname tutorial 
    ich will einfach nur Zugriff auf die Datenbank. Will in vorliegendem beispiel in meinem Model in dem ich nicht Zend_Db_Table_Abstract vererbt (sondern zend_mail) habe, in meiner DB was einfügen

    Übrigens hier der Dump
    PHP-Code:
    object(Zend_Config_Ini)#72 (11) {
      
    ["_nestSeparator":protected] => string(1"."
      
    ["_sectionSeparator":protected] => string(1":"
      
    ["_skipExtends":protected] => bool(false)
      [
    "_allowModifications":protected] => bool(false)
      [
    "_index":protected] => int(0)
      [
    "_count":protected] => int(5)
      [
    "_data":protected] => array(5) {
        [
    "phpSettings"] => object(Zend_Config)#73 (8) {
          
    ["_allowModifications":protected] => bool(false)
          [
    "_index":protected] => int(0)
          [
    "_count":protected] => int(2)
          [
    "_data":protected] => array(2) {
            [
    "display_startup_errors"] => string(1"0"
            
    ["display_errors"] => string(1"0"
          
    }
          [
    "_skipNextIteration":protected] => NULL
          
    ["_loadedSection":protected] => NULL
          
    ["_extends":protected] => array(0) {
          }
          [
    "_loadFileErrorStr":protected] => NULL
        
    }
        [
    "includePaths"] => object(Zend_Config)#74 (8) {
          
    ["_allowModifications":protected] => bool(false)
          [
    "_index":protected] => int(0)
          [
    "_count":protected] => int(1)
          [
    "_data":protected] => array(1) {
            [
    "library"] => string(50"C:\xampp\htdocs\zf-beginner\application/../library"
          
    }
          [
    "_skipNextIteration":protected] => NULL
          
    ["_loadedSection":protected] => NULL
          
    ["_extends":protected] => array(0) {
          }
          [
    "_loadFileErrorStr":protected] => NULL
        
    }
        [
    "bootstrap"] => object(Zend_Config)#75 (8) {
          
    ["_allowModifications":protected] => bool(false)
          [
    "_index":protected] => int(0)
          [
    "_count":protected] => int(2)
          [
    "_data":protected] => array(2) {
            [
    "path"] => string(53"C:\xampp\htdocs\zf-beginner\application/Bootstrap.php"
            
    ["class"] => string(9"Bootstrap"
          
    }
          [
    "_skipNextIteration":protected] => NULL
          
    ["_loadedSection":protected] => NULL
          
    ["_extends":protected] => array(0) {
          }
          [
    "_loadFileErrorStr":protected] => NULL
        
    }
        [
    "resources"] => object(Zend_Config)#76 (8) {
          
    ["_allowModifications":protected] => bool(false)
          [
    "_index":protected] => int(0)
          [
    "_count":protected] => int(5)
          [
    "_data":protected] => array(5) {
            [
    "frontController"] => object(Zend_Config)#77 (8) {
              
    ["_allowModifications":protected] => bool(false)
              [
    "_index":protected] => int(0)
              [
    "_count":protected] => int(2)
              [
    "_data":protected] => array(2) {
                [
    "controllerDirectory"] => string(67"C:\xampp\htdocs\zf-beginner\application/modules/default/controllers"
                
    ["moduleDirectory"] => string(47"C:\xampp\htdocs\zf-beginner\application/modules"
              
    }
              [
    "_skipNextIteration":protected] => NULL
              
    ["_loadedSection":protected] => NULL
              
    ["_extends":protected] => array(0) {
              }
              [
    "_loadFileErrorStr":protected] => NULL
            
    }
            [
    "modules"] => object(Zend_Config)#78 (8) {
              
    ["_allowModifications":protected] => bool(false)
              [
    "_index":protected] => int(0)
              [
    "_count":protected] => int(1)
              [
    "_data":protected] => array(1) {
                [
    0] => string(0""
              
    }
              [
    "_skipNextIteration":protected] => NULL
              
    ["_loadedSection":protected] => NULL
              
    ["_extends":protected] => array(0) {
              }
              [
    "_loadFileErrorStr":protected] => NULL
            
    }
            [
    "layout"] => object(Zend_Config)#79 (8) {
              
    ["_allowModifications":protected] => bool(false)
              [
    "_index":protected] => int(0)
              [
    "_count":protected] => int(1)
              [
    "_data":protected] => array(1) {
                [
    "layoutPath"] => string(47"C:\xampp\htdocs\zf-beginner\application/layouts"
              
    }
              [
    "_skipNextIteration":protected] => NULL
              
    ["_loadedSection":protected] => NULL
              
    ["_extends":protected] => array(0) {
              }
              [
    "_loadFileErrorStr":protected] => NULL
            
    }
            [
    "view"] => object(Zend_Config)#80 (8) {
              
    ["_allowModifications":protected] => bool(false)
              [
    "_index":protected] => int(0)
              [
    "_count":protected] => int(1)
              [
    "_data":protected] => array(1) {
                [
    0] => string(0""
              
    }
              [
    "_skipNextIteration":protected] => NULL
              
    ["_loadedSection":protected] => NULL
              
    ["_extends":protected] => array(0) {
              }
              [
    "_loadFileErrorStr":protected] => NULL
            
    }
            [
    "db"] => object(Zend_Config)#81 (8) {
              
    ["_allowModifications":protected] => bool(false)
              [
    "_index":protected] => int(0)
              [
    "_count":protected] => int(2)
              [
    "_data":protected] => array(2) {
                [
    "adapter"] => string(9"PDO_MYSQL"
                
    ["params"] => object(Zend_Config)#82 (8) {
                  
    ["_allowModifications":protected] => bool(false)
                  [
    "_index":protected] => int(0)
                  [
    "_count":protected] => int(4)
                  [
    "_data":protected] => array(4) {
                    [
    "host"] => string(9"localhost"
                    
    ["username"] => string(4"root"
                    
    ["password"] => string(4"root"
                    
    ["dbname"] => string(12"tutorial"
                  
    }
                  [
    "_skipNextIteration":protected] => NULL
                  
    ["_loadedSection":protected] => NULL
                  
    ["_extends":protected] => array(0) {
                  }
                  [
    "_loadFileErrorStr":protected] => NULL
                
    }
              }
              [
    "_skipNextIteration":protected] => NULL
              
    ["_loadedSection":protected] => NULL
              
    ["_extends":protected] => array(0) {
              }
              [
    "_loadFileErrorStr":protected] => NULL
            
    }
          }
          [
    "_skipNextIteration":protected] => NULL
          
    ["_loadedSection":protected] => NULL
          
    ["_extends":protected] => array(0) {
          }
          [
    "_loadFileErrorStr":protected] => NULL
        
    }
        [
    "autoloaderNamespaces"] => object(Zend_Config)#83 (8) {
          
    ["_allowModifications":protected] => bool(false)
          [
    "_index":protected] => int(0)
          [
    "_count":protected] => int(1)
          [
    "_data":protected] => array(1) {
            [
    "My"] => string(10"MyScripts_"
          
    }
          [
    "_skipNextIteration":protected] => NULL
          
    ["_loadedSection":protected] => NULL
          
    ["_extends":protected] => array(0) {
          }
          [
    "_loadFileErrorStr":protected] => NULL
        
    }
      }
      [
    "_skipNextIteration":protected] => NULL
      
    ["_loadedSection":protected] => array(1) {
        [
    0] => string(10"production"
      
    }
      [
    "_extends":protected] => array(0) {
      }
      [
    "_loadFileErrorStr":protected] => NULL

    Geändert von ZF_Fan (20.01.2010 um 02:33 Uhr)

  4. #4
    Erfahrener Benutzer
    Registriert seit
    28.12.2006
    Beiträge
    9.966
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Wenn ich sage "dump mal XY" hoffe ich in der Regel, dass sich der Betroffene das Ding auch mal selbst anschaut und vielleicht nen "Aha"-Effekt erlebt. Ist wohl zu viel verlangt ... Chance vertan ... Debugging ist dann doch ne Kunst...

    Du lädst die komplette application.ini, die Daten, die Zend_Db:factory() erwartet befinden sich aber nur im "db"-Abschnitt.
    Wieso lädst du die überhaupt per Hand? Macht Zend_Application doch sowieso von ganz alleine
    Geändert von KingCrunch (20.01.2010 um 03:14 Uhr)

  5. #5
    Erfahrener Benutzer
    Registriert seit
    14.12.2009
    Beiträge
    440
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    ok war schon gestern etwas spät. den aha effekt habe ich heute nur teilweise erlebt in dem ich folgendes mache:

    PHP-Code:
    $db Zend_Db::factory($config->db); 
    Jedoch wieder die meldung: Adapter name must be specified in a string
    Was Mach ich nur falsch?

  6. #6
    Erfahrener Benutzer
    Registriert seit
    10.09.2007
    Ort
    Wuppertal
    Beiträge
    5.725
    Thanks
    1
    Thanked 41 Times in 40 Posts

    Standard

    Du benutzt doch eh schon die Zend_Application_Resource_Db, warum willst du 2 Zend_Db Objekte mit den gleichen Daten erstellen?
    Geändert von DennisBecker (20.01.2010 um 16:08 Uhr)
    Neues Projekt: zandman.de - Status: WIP




  7. #7
    Erfahrener Benutzer
    Registriert seit
    14.12.2009
    Beiträge
    440
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Zitat Zitat von DennisBecker Beitrag anzeigen
    Du benutzt doch eh schon die Zend_Application_Resource_Db, warum willst du 2 Zend_Db Objekte mit den gleichen Daten erstellen?
    Ah ok verstehe... aber wo füg ich die resource hinzu?

    EDIT:

    hab in meiner Bootsrap folgendes gemacht
    PHP-Code:
    protected function _initDatabase()
        {
            
              
    $this->bootstrap('layout');
            
    $layout $this->getPluginResource('db');
        
        
        } 
    Wie mach aber dann weiter?

    Will doch nur ne Datenbankverbindung *heul*
    Geändert von ZF_Fan (20.01.2010 um 16:53 Uhr)

  8. #8
    Erfahrener Benutzer
    Registriert seit
    28.12.2006
    Beiträge
    9.966
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    http://framework.zend.com/apidoc/cor...l#getDbAdapter
    Eigentlich schonmal was allein gemacht?
    Und wieso bootstrapst du "layout", wenn du den Adapter haben willst?

  9. #9
    Erfahrener Benutzer
    Registriert seit
    14.12.2009
    Beiträge
    440
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    ok Sorry! Muss besser lesen...

    Bootstrap:
    PHP-Code:
    $dbResource $this->getPluginResource("db");
          
    $db $dbResource->getDbAdapter();
          
    Zend_Registry::set("db"$db); 
    Zugriff mit:
    PHP-Code:
    $db Zend_Registry::get("db"); 
    nur ist jetzt leider meine Autovervollständigung in eclipse flöten gegangen... Weiss wer Warum? gehört zwar nicht hier her, aber wo ich schon mal dabei bin
    Geändert von ZF_Fan (20.01.2010 um 17:14 Uhr)

  10. #10
    Erfahrener Benutzer
    Registriert seit
    10.09.2007
    Ort
    Wuppertal
    Beiträge
    5.725
    Thanks
    1
    Thanked 41 Times in 40 Posts

    Standard

    Ganz einfach, Eclipse kann das nicht auflösen. 'db' ist nur eine Rückgabe aus der Zend_Registry Klasse und für die IDE ist das nuneinmal nur ein String.

    Man kann da aber ein wenig tricksen. Wenn du $db als Membervariable deklarierst, kannst du den entsprechenden PHPDoc Code dazuschreiben, dann erkennt es Eclipse / Zend Studio wieder.

    PHP-Code:
    class Foo
    {
        
    /**
         * @var Zend_Db
         */
        
    private $_db;

    /*
      dein Quellcode
    */


    Neues Projekt: zandman.de - Status: WIP




  11. #11
    Erfahrener Benutzer
    Registriert seit
    28.12.2006
    Beiträge
    9.966
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Irgendwie so oder so ähnlich ging das auch direkt im Quellcode
    PHP-Code:
    public function xy() {
      
    // ...
      /** @var Zend_Db $db */
      
    $db;


  12. #12
    Erfahrener Benutzer
    Registriert seit
    14.12.2009
    Beiträge
    440
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    jetzt gibts nur noch ein problem:

    fehlermeldung in einer normalen Model_DbTable_xx Klasse die Zend_Db_Table Abstarct erbt

    --> No adapter found for Model_DbTable_xx

    Muss ich jetzt immer
    PHP-Code:
        $db Zend_Registry::get("db"); 
    erst die db aus der registry holen?

  13. #13
    Erfahrener Benutzer
    Registriert seit
    28.12.2006
    Beiträge
    9.966
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    --> No adapter found for Model_DbTable_xx
    Du kannst über eine INI-Einstellung den Standardadapter für Db_Table setzen. Als Hausaufgabe bleibt dir jetzt noch die entsprechende Stelle im Manual zu finden

  14. #14
    Erfahrener Benutzer
    Registriert seit
    14.12.2009
    Beiträge
    440
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    hab ich das nicht schon getan?
    mit:
    resources.db.adapter = PDO_MYSQL


    Folgendes hab ich in der Doku gefunden: http://framework.zend.com/manual/de/...ucting.adapter

    Jedoch nichts zur ini


    EDIT:
    oder mach ich das etwa so?
    resources.db.isDefaultTableAdapter = true


    nochmal zu verdeutlichung:
    hab nun folgende ModelKlasse die ich ohne Registryaufruf ausführen möchte:
    PHP-Code:
    <?php
    class Model_DbTable_Request extends Zend_Db_Table_Abstract{
        
        protected 
    $_name 'Request';    
        
         
        public function 
    add($name$email$phone$subject$request$date){
            
            
            
    $act_date $this->date date('Y-m-d');
            
            
    $data = array(
            
    'name'    => $name,
            
    'email'   => $email,
            
    'phone'   => $phone,
            
    'subject' =>$subject,
            
    'request' =>$request,
            
    'date'    => $act_date        
            
            
    );
            
            
            
    $this->insert($data);    
            
            
        }
        
        
        
    }
    kommt leider immer noch fehlermeldung
    Geändert von ZF_Fan (20.01.2010 um 21:15 Uhr)

  15. #15
    Erfahrener Benutzer
    Registriert seit
    28.12.2006
    Beiträge
    9.966
    Thanks
    0
    Thanked 0 Times in 0 Posts

  16. #16
    Erfahrener Benutzer
    Registriert seit
    14.12.2009
    Beiträge
    440
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Ja da hab ich die Info auch her.

    Nur leider funzt es ned

    in der ini ist nun folgendes:
    PHP-Code:
    resources.db.adapter PDO_MYSQL
    resources
    .db.params.host localhost
    resources
    .db.params.username root
    resources
    .db.params.password root
    resources
    .db.params.dbname tutorial
    resources
    .db.isDefaultTableAdapter true 

  17. #17
    Erfahrener Benutzer
    Registriert seit
    28.12.2006
    Beiträge
    9.966
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Nur leider funzt es ned
    Bei mir funktionierts. Nicht reproduzierbar, Problem gelöst.

  18. #18
    Erfahrener Benutzer
    Registriert seit
    14.12.2009
    Beiträge
    440
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Probelm ist nicht gelöst!!!!!!! Bei mir zumindest nicht

  19. #19
    Erfahrener Benutzer
    Registriert seit
    28.12.2006
    Beiträge
    9.966
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    OK, du hast die Ironie also nicht verstanden...
    Ist die Fehlermeldung
    No adapter found for Model_DbTable_xx
    noch die gleiche?

    Edit:
    http://catb.org/esr/faqs/smart-questions.html

  20. #20
    Erfahrener Benutzer
    Registriert seit
    14.12.2009
    Beiträge
    440
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Bitte verwirr mich nicht noch mit Ironie. bin schon genug verwirrt.

    ja der Fehler ist der gleiche geblieben

    HTML-Code:
    [b]An error occurred[/b]
    
       [b]Application error[/b]
    
           [b]Exception information:[/b]
    
              Message: No adapter found for Model_DbTable_Request  
        [b]Stack trace:[/b]
    
       #0 C:\xampp\htdocs\zf-beginner\library\Zend\Db\Table\Abstract.php(739): Zend_Db_Table_Abstract->_setupDatabaseAdapter()
    #1 C:\xampp\htdocs\zf-beginner\library\Zend\Db\Table\Abstract.php(268): Zend_Db_Table_Abstract->_setup()
    #2 C:\xampp\htdocs\zf-beginner\application\modules\default\controllers\ContactController.php(50): Zend_Db_Table_Abstract->__construct()
    #3 C:\xampp\htdocs\zf-beginner\library\Zend\Controller\Action.php(513): ContactController->sendAction()
    #4 C:\xampp\htdocs\zf-beginner\library\Zend\Controller\Dispatcher\Standard.php(289): Zend_Controller_Action->dispatch('sendAction')
    #5 C:\xampp\htdocs\zf-beginner\library\Zend\Controller\Front.php(946): Zend_Controller_Dispatcher_Standard->dispatch(Object(Zend_Controller_Request_Http), Object(Zend_Controller_Response_Http))
    #6 C:\xampp\htdocs\zf-beginner\library\Zend\Application\Bootstrap\Bootstrap.php(77): Zend_Controller_Front->dispatch()
    #7 C:\xampp\htdocs\zf-beginner\library\Zend\Application.php(358): Zend_Application_Bootstrap_Bootstrap->run()
    #8 C:\xampp\htdocs\zf-beginner\public\index.php(39): Zend_Application->run()
    #9 {main}      [b]Request Parameters:[/b]
    
       array (
      'controller' => 'contact',
      'action' => 'send',
      'module' => 'default',
      'name' => 'dfg',
      'email' => 'dfgh@w.de',
      'phone' => '',
      'subject' => 'Anfrage: Frage zu Anzeigen/Werbung/Banner',
      'question' => '',
      'captcha' => 
      array (
        'id' => 'def7925b06179dde6cdd68da57a450f5',
        'input' => 'uug7',
      ),
      'submit' => 'Email senden',
      'no_reload' => 'e6bcfcb7cc04585ca264cdf61d672bf0',
    )
    In Post #14 von mir ist meine Modelklasse zu finden
    Geändert von ZF_Fan (20.01.2010 um 21:48 Uhr)

Seite 1 von 2 1 2 LetzteLetzte

Ähnliche Themen

  1. Db Adapter wird nicht gesetzt
    Von KeKs0r im Forum Einsteigerfragen
    Antworten: 21
    Letzter Beitrag: 03.09.2009, 14:49
  2. TMX Adapter verarbeitet vorhandene .tmx nicht
    Von tsteffen im Forum Lokalisierung & Internationalisierung
    Antworten: 10
    Letzter Beitrag: 10.10.2008, 21:42
  3. Suche funktioniert nicht
    Von wagneru im Forum Über das Forum
    Antworten: 5
    Letzter Beitrag: 04.08.2008, 14:49
  4. Neuer Datenbank Adapter
    Von thomas im Forum DB
    Antworten: 0
    Letzter Beitrag: 01.11.2007, 14:59
  5. Antworten: 0
    Letzter Beitrag: 09.08.2007, 01:27

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •