2012-02-13 67 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中不允许。