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.