2013-04-18 7 views
0

Mon système actuel utilise Zend Framework 1 et fonctionne très bien avec notre serveur MySQL local. Cependant, j'ai maintenant besoin d'accéder à un autre serveur pour l'importation/exportation. J'utilise une classe étendue à partir de zend_db_table_abstract pour interroger la table nécessaire.Accéder au serveur distant à l'aide de Zend_Db_Table

class Model_Db_ExportData extends Zend_Db_Table_Abstract{ 
    protected $_name; 
    protected $_schema; 
} 

J'instancier le nom et le schéma lorsque je crée l'objet

$export = new Model_Db_ExportData(array('name' => $this->exportTable, 'schema' => $this->db)); 

EDIT De ce que je comprends, Zend_Db_Table n'est pas le lieu de définir l'hôte, car il ne concerne que les tables. Cependant, je suis toujours incapable de comprendre où je peux définir un hôte en dehors des configs. EDIT

Comment spécifier un serveur distinct de celui défini dans mes configs? Dois-je utiliser des fichiers de configuration personnalisés pour ce code? La documentation de Zend_Db_Table_Abstract n'a pas été très utile, bien qu'elle soit assez volumineuse et que j'aurais facilement manqué quelque chose. Toute aide est fortement appréciée.

Répondre

1

Il y a au moins 2 façons possibles pour accomplir ce que vous voulez:

  1. Zend_Db_Adapter - vérifier les exemples là pour voir comment créer un adaptateur avec les paramètres du serveur à distance; - Créer un fichier avec les paramètres du serveur distant, puis appeler votre application.
+0

Zend_Db_Adaptor est exactement ce dont j'avais besoin, merci. – TheMonarch

+0

En guise de suivi, puis-je utiliser zend_db_adaptor de la même manière que je peux utiliser zend_db_table? Je vois dans les docs que je peux lui passer des requêtes sous la forme de sql normal, et que je peux utiliser fetchAll etc. At-il la même flexibilité avec where(), join() et ainsi de suite? – TheMonarch

+1

Vous pouvez toujours utiliser Zend_Db_Table, créez simplement votre Zend_Db_Adaptor 1st, puis appelez ** Zend_Db_Table :: setDefaultAdapter ($ dbAdapter); **. –

Questions connexes