Comment enregistrer la requête SQL de la collection?


9

Je souhaite enregistrer la requête SQL pour une collection personnalisée. J'ai essayé le code suivant. Mais n'a pas fonctionné. Toute suggestion sera appréciée.

Mage::log($collection->getSelect(),null,'test.log',true);

Réponses:


10

Si vous voulez la requête SQL d'une collection, vous devez la convertir en chaîne. Ajoutez simplement (string)à votre code d'enregistrement précédemment écrit.

Mage::log((string)$collection->getSelect(),null,'test.log',true);

12

Essayez $Collection->printLogQuery(true);ceci imprimera la requête de collection.


Merci beaucoup. Votre code imprime la requête sur l'interface.
Sukeshini

2

Comme Flyingmana me l'a expliqué, merci à lui.

$collection->load($printQuery = false, $logQuery = false)

Il est important de consigner ou d'imprimer la requête après le chargement, car dans la beforeLoadméthode, beaucoup de choses peuvent être faites. Donc la première réponse:

Mage::log((string)$collection->getSelect(),null,'test.log',true);

doit être utilisé APRÈS avoir loadété appelé.


Comment obtenir l'événement en cours et l'imprimer dans le fichier journal dans Magento 1.9
Gem

Je ne comprends pas la question. Quel évènement?
Fabian Blechschmidt

2

Étape 1:

$result_colletion = print_r($collection->getSelect());
Mage::log($$result_colletion, null, custom_collection.log,true);

Étape 2: Après cette connexion à la section d'administration de Magento et activez le paramètre de connexion. Veuillez voir ci-dessous.

Système> Configuration> Développeur> Paramètres de journal

Étape 3: Après cela, consultez le fichier journal «custom_collection.log» dans le dossier var / log /.


1
Mage::log($collection->getSelect()->__toString(), Zend_Log::DEBUG, 'test.log', true);

Éditer:

Au lieu d'utiliser null(repli vers DEBUG) comme deuxième paramètre, mieux utiliser l'un d'entre eux à partir de Zend_Log:

const EMERG   = 0;  // Emergency: system is unusable
const ALERT   = 1;  // Alert: action must be taken immediately
const CRIT    = 2;  // Critical: critical conditions
const ERR     = 3;  // Error: error conditions
const WARN    = 4;  // Warning: warning conditions
const NOTICE  = 5;  // Notice: normal but significant condition
const INFO    = 6;  // Informational: informational messages
const DEBUG   = 7;  // Debug: debug messages
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.