2012-02-13 64 views
0

我有一個在我的開發機器上工作得很好的教義程序,但是當我將它移動到我的服務器時,它停止工作。這兩臺機器之間的主要區別在於一個是windows並運行mySql 5.5,另一個是運行MySQL 5.1的Linux。主義移民問題。 Windows-> linux,MySQL 5.5-> MySQL 5.1

由於日誌語句後綴從未出現,我已經指出失敗行$ this-> entityManager-> createNativeQuery($ dql,$ rsm)。

get_log()->logDebug("query: ".$dql); 
$rsm = new ResultSetMappingBuilder($this->entityManager); 
get_log()->logDebug("ResultSetMappingBuilder"); 

var_dump($rsm); 
$rsm->addRootEntityFromClassMetadata('D_Post', 'f'); 
get_log()->logDebug("addRootEntityFromClassMetadata"); 
$query = $this->entityManager->createNativeQuery($dql, $rsm); 
get_log()->logDebug("createNativeQuery"); 

的SQL運行是

SELECT * FROM (SELECT DISTINCT f.ID,f.post_title, f.post_date, f.post_type, 
f.views_count 
as score FROM wp_vsideviewpostfilter f ) t ORDER BY t.score DESC,t.post_title 
DESC LIMIT 0,10 

我可以通過查詢亞軍執行Linux機器上的SQL代碼,並正確執行。

有關爲什麼此程序在其他服務器上失敗的任何想法?

+1

檢查跟蹤的PHP和MySQL錯誤日誌。 – Alfabravo 2012-02-13 14:58:11

+1

由於您正在Windows中開發並在Linux中進行測試,可能問題是區分大小寫的相關?發生了幾次:D – aletzo 2012-02-13 15:18:12

+0

我不知道爲什麼我忘了檢查實際的服務器日誌。我之前確實遇到了區分大小寫問題,但已經解決了這個問題。但是,這是問題是混合\和/在一個目錄路徑。出於某種原因,Windows允許這樣做。謝謝 – i8abug 2012-02-13 15:24:22

回答

0

就我而言,問題出在一個映射上。學說無法找到D_Post實體映射。映射路徑中有/和\的混合,它在Windows中允許,但在Linux中不允許。