So drucken Sie die genauen sql-Abfrage im zend framework ?
Habe ich das folgende Stück code, das ich genommen vom Modell,
...
$select = $this->_db->select()
->from($this->_name)
->where('shipping=?',$type)
->where('customer_id=?',$userid);
echo $select; exit; //which gives exact mysql query.
.....
Wenn ich update-Abfrage in zend wie ,
$up_value = array('billing'=> '0');
$this->update($up_value,'customer_id ='.$userid.' and address_id <> '.$data['address_Id']);
Hier möchte ich wissen, die genaue mysql-Abfrage. Gibt es überhaupt eine Möglichkeit zum drucken der mysql-Abfrage in zend ? bitte Beratung
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wählen Sie die Objekte haben eine __toString () - Methode ist im Zend Framework.
Vom Zend Framework manual:
Eine alternative Lösung wäre die Verwendung der Zend_Db_Profiler.
also
http://framework.zend.com/manual/en/zend.db.select.html
Call to undefined method Zend\Db\Sql\Select::__toString()
aufZend DB 2.8.2
vom >= 2.1.4
Habe ich Durchlaufen hundert Seiten, googelte viel, aber ich habe nicht gefunden, einen exakten Lösung.
Schließlich ist dies für mich gearbeitet. Unabhängig, wo Sie sind entweder im controller oder Modell. Dieser code war für mich jeder, wo. Dann nutzen Sie einfach dieses
Schließlich das, was für mich gearbeitet.
Können Sie
Zend_Debug::Dump($select->assemble());
um die SQL-Abfrage.Oder Sie können Zend DB hier FirePHP profiler die bekommen Sie alle Abfragen in einem ordentlichen format im Firebug (auch UPDATE-Anweisungen).
BEARBEITEN:
Profiling mit hier FirePHP funktioniert auch auch in FF6.0+ (nicht nur im FF3.0, wie vorgeschlagen, in link)
Nun auf Zend2:
Anzeigen der generierten SQL aus ZendDbSql Objekt
können Sie drucken..
Beispiel:
sogar noch kürzer:
und mehr kürzer:
Verwenden:-
oder
Zend_Debug::dump($select->query();
gearbeitetCheck-out die Zend_Db_Profiler. Diese können Sie melden Sie eine SQL-Anweisung, wie es vorbereitet und durchgeführt. Es funktioniert für UPDATE-Anweisungen als auch SELECT-Abfragen.
Ich habe das getan, indem auf diese Weise
Die Abfrage aus dem profiler oder Abfrage Objekt-Platzhalter, wenn Sie mit diesen.
Sehen Sie die genaue Abfrage ausführen, indem Sie mysql verwenden können, die Allgemeine Anfragen-log.
Diese listet alle Abfragen, die ausgeführt werden, da es aktiviert wurde.
Vergessen Sie nicht, deaktivieren Sie diese, sobald Sie gesammelt haben Ihre Probe.
Auf eine active server; dieses Protokoll kann Sie füllen sich sehr schnell.
Aus einer mysql-terminal oder-Abfrage-tool wie MySQL Workbench ausführen:
dann führen Sie Ihre Abfrage.
Die Ergebnisse werden gespeichert in der "mysql.general_log" Tabelle.
Deaktivieren der Abfrage log:
Zu überprüfen, ob es deaktiviert ist:
Dies hat mir geholfen, suchen Sie eine Abfrage, wo die Platzhalter nicht ersetzt werden, die von zend db. Konnte nicht sehen, dass mit dem profiler.
Dieser ist von Zend Framework Dokumentation (ie. UPDATE):
(Bonus -) ich verwende dies in meinem eigenen Modell-Dateien:
Einen schönen Tag 🙂