У меня есть программа доктрины, которая отлично работает на моей машине для разработки, но когда я перемещаю ее на свой сервер, она перестает работать. Основные различия между этими двумя машинами заключаются в том, что одна из них - это windows и работает mySql 5.5, а другая - linux под MySQL 5.1.
Я обнаружил ошибку в строке $ this-> entityManager-> createNativeQuery ($ dql, $ rsm), так как послесловие оператора log никогда не происходит.
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
Я могу выполнить код SQL на машине linux через обработчик запросов, и он выполняется правильно.
Есть идеи, почему эта программа не работает на другом сервере?