function get_event($id){
$query = $this->em->createQuery('SELECT e.name,e.date, e.time, e.venue, e.venueaddress,e.parish,e.genre, e.entryprice, e.phone, e.specialguests,
e.weblink, e.otherinfo, e.flyer1, e.flyer2 from Events e WHERE e.id = :id');
$query->setParameter('id', $id);
//CAN I VIEW THE QUERY AT THIS TIME?
$result = $query->getResult();
return $result;
}
2
A
回答
3
由Haim Evgi建議的EchoSqlLogger
,echo's日誌輸出,所以你應該在你的網站上看到它。
如果你只是想看看有什麼SQL查詢主義會產生,使用:
$query = $this->em->createQuery('SELECT e.name,e.date, e.time, e.venue, e.venueaddress,e.parish,e.genre, e.entryprice, e.phone, e.specialguests,
e.weblink, e.otherinfo, e.flyer1, e.flyer2 from Events e WHERE e.id = :id');
print $query->getSQL();
但要注意,參數不包括在SQL字符串,它們顯示爲佔位符(=?)。
我使用的最常見的技術,以觀察什麼學說做的是啓用MySQL(或任何你使用的數據庫)query log(不要在負載很重的生產服務器上這樣做!)。
如果查詢日誌/var/log/mysql/query.log
下,我只是這樣做:
# tail -f /var/log/mysql/query.log
(見tail command瞭解詳細信息)
並重新加載其執行查詢的頁面。
2
在教義2.3.2
use Doctrine\DBAL\Logging\DebugStack;
$logger = new DebugStack();
$config->setSQLLogger($logger);
現在
您可以打印帶有的print_r($記錄器)$記錄;
0
//create query
$oQuery = $this->em->createQuery('SELECT tbl.id FROM mytable tbl WHERE tbl.id = :id');
//print query and params
echo "SQL: ".$oQuery->getSQL();
while($param = $oQuery->getParameters()->current()){
echo "Param: ".$param->getName()." | ".$param->getValue()." | ".$param->getType();
$oQuery->getParameters()->next();
}
SQL:SELECT tbl.id AS id0 FROM mytable tbl WHERE tbl.id =?
Param:id | 1 |整數
相關問題
- 1. 用準備好的查詢
- 2. 執行準備好的查詢c#mysql
- 3. 運行查詢時DQL關聯錯誤
- 4. 準備查詢
- 5. 準備查詢
- 6. Documentum查詢-DQL
- 7. DQL查詢從
- 8. Documentum DQL查詢
- 9. 如何在Symfony2中執行DQL查詢?
- 10. 在DQL子查詢
- 11. 在DQL上用Symfony查詢子查詢
- 12. 如何結合DQL查詢
- 13. 準備SQL查詢
- 14. 準備查詢與構建查詢
- 15. 無法使用準備好的聲明和MySQLi運行查詢
- 16. 使用Java驅動程序運行準備好的MongoDB查詢
- 17. DQL複雜的查詢,嵌套查詢
- 18. 從ADO.NET運行時查詢超時但在查詢中運行良好Analyer
- 19. 如何使用準備好的語句執行多個查詢?
- 20. 如何獲取準備好執行的查詢?
- 21. 檢查地圖是否準備好進行查詢RenderedFeatures
- 22. MySQL準備好聲明加入查詢
- 23. 選擇查詢沒有準備好
- 24. 等於DQL查詢
- 25. DQL查詢失敗
- 26. 準備SQL查詢時間vs普通查詢時間
- 27. 我如何查看執行的查詢?
- 28. 如何在Cakephp中查詢準備好的語句
- 29. 如何在準備好的語句中處理多個查詢?
- 30. 如何在準備好的語句中有兩個sql查詢?
http://stackoverflow.com/questions/2095394/doctrine-how-to-print-out-the-real-sql-not-just-the-prepared-statment –
我試過,但它不起作用在學說2? – jini
在Doctrine 2中調試查詢最簡單的解決方案:$ em-> getConfiguration() - > setSQLLogger(new \ Doctrine \ DBAL \ Logging \ EchoSQLLogger()); –