簡體   English   中英

為什么Zend Framework(Zend_Db_table)拒絕這個SQL查詢?

[英]Why is Zend Framework (Zend_Db_table) rejecting this SQL Query?

我工作的一個簡單的JOIN兩個表(的urlscompanies )。 我正在使用此查詢調用:

print $this->_db->select()->from(array('u' => 'urls'),
                                 array('id', 'url', 'company_id'))
                          ->join(array('c' => 'companies'),
                                 'u.company_id = c.id');

這是出於這個問題:

SELECT `u`.`id`, `u`.`url`, `u`.`company_id`, `c`.* FROM `urls` AS `u` INNER JOIN `companies` AS `c` ON u.company_id = c.id

現在,我更喜歡c.*實際上沒有出現,但無論哪種方式都沒關系。 ZF死於這個錯誤:

SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1"

但我可以在MySQL CLI中完美地運行該查詢。 任何想法如何解決這個問題?

我只是在針對ZF 1.10和MySQL 5.1的測試腳本中嘗試了該代碼,它運行正常。

您使用什么用戶/密碼連接到數據庫? 它說“或訪問沖突”,所以我會測試你的db用戶名是否具有正確的權限。 嘗試使用完全相同的用戶/密碼和連接方法在MySQL CLI中進行連接(因為權限可能因客戶端主機而異,即使對於相同的用戶/密碼也是如此)。

請參閱MySQL Zend Framework - SQLSTATE [42000]:語法錯誤或訪問沖突:

順便說一句,您可以通過傳遞列的空數組作為join()的第三個參數來省略c.*列:

->join(array('c' => 'companies'), 'u.company_id = c.id', array());

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM