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. Documentum查詢-DQL
- 3. DQL查詢從
- 4. 如何在Symfony2中執行DQL查詢?
- 5. 如何結合DQL查詢
- 6. 使用Java驅動程序運行準備好的MongoDB查詢
- 7. 無法使用準備好的聲明和MySQLi運行查詢
- 8. 如何使用準備好的語句執行多個查詢?
- 9. 選擇查詢沒有準備好
- 10. DQL查詢失敗
- 11. 準備SQL查詢時間vs普通查詢時間
- 12. 我如何查看執行的查詢?
- 13. 如何在Cakephp中查詢準備好的語句
- 14. 如何在準備好的語句中有兩個sql查詢?
- 15. 如何查看Django正在運行的原始SQL查詢?
- 16. 在查詢生成器Dql
- 17. 如何在java中運行dql搜索查詢?
- 18. 在PHP和MySQL中準備好的查詢刪除行
- 19. 在運行時查詢execstack
- 20. 準備動態mysql查詢
- 21. MySQLi:查詢VS準備
- 22. PHP PDO準備查詢
- 23. 帶關聯的DQL查詢?
- 24. 在mysql查詢中運行mysql查詢
- 25. 如何將此查詢更改爲準備好的語句?
- 26. 複雜的查詢功能 - 如何使它做好準備?
- 27. 如何將參數綁定到未準備好的查詢?
- 28. 如何將SQL查詢轉換爲準備好的語句PHP
- 29. 準備好的語句以及它們如何影響查詢
- 30. MySQLSyntaxErrorException當檢索MetaData的「select ... limit?,?」時準備好的查詢
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()); –