我有一个在我的开发机器上运行良好的学说程序但是当我将它移动到我的服务器时,它停止工作。这两台机器之间的主要区别是一台是windows并运行mySql 5.5,另一台是linux运行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代码并正确执行。
关于为什么这个程序在另一台服务器上失败的任何想法?
答案 0 :(得分:0)
就我而言,问题在于其中一个映射。 Doctrine找不到D_Post实体映射。映射的路径中包含/和\的混合,这在Windows中是允许的,但在linux中则不允许。