Come registrare la query SQL della raccolta?


9

Voglio registrare la query SQL per una raccolta personalizzata. Ho provato il seguente codice. Ma non ha funzionato. Ogni suggerimento sarà apprezzato.

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

Risposte:


10

Se si desidera la query SQL da una raccolta, è necessario eseguirne il cast come stringa. Basta aggiungere (string)al codice di registrazione precedentemente scritto.

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

12

Prova $Collection->printLogQuery(true);questo stamperà la query di raccolta.


Grazie mille. Il codice stampa la query sull'interfaccia.
Sukeshini,

2

Come mi ha spiegato Flyingmana, grazie a lui.

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

È importante registrare o stampare la query dopo il caricamento, perché nel beforeLoadmetodo si possono fare molte cose. Quindi la prima risposta:

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

dovrebbe essere usato DOPO che loadviene chiamato.


Come ottenere l'evento corrente e stamparlo nel file di registro in Magento 1.9
Gemma

Non capisco la domanda. Quale evento?
Fabian Blechschmidt,

2

Passo 1:

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

Passaggio 2: Successivamente accedi alla sezione di amministrazione di Magento e abilita l'impostazione del registro. Vedi sotto .

Sistema> Configurazione> Sviluppatore> Impostazioni registro

Passaggio 3: Successivamente, consultare il file di registro "custom_collection.log" nella cartella var / log /.


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

Modificare:

Invece di usare null(fallback a DEBUG) come secondo parametro meglio usare uno di questi da 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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.