2013-11-14 4 views
1

Это мой первый раз, когда я использую symfony 2. Для интеграции с базой данных я подумываю использовать propel, поскольку учение и аннотации кажутся мне очень трудными. Но мне кажется, что для запроса необходимо использовать собственные функции. Я использовал codeigniter. В codeigniter я использовал для отправки строки запроса, и он использовал для отправки мне данных. Есть ли что-то подобное в propel symfony 2? Как -пользовательский запрос с propel symfony 2

$query = 'select * from table where column1 natural join column2'; 
$this->db->query($query); 

ответ

2

Вы должны смотреть на документы из SF2:
http://symfony.com/doc/current/book/propel.html

Если вы хотите использовать сырые SQL:

$em = $this->getDoctrine()->getEntityManager(); 
$connection = $em->getConnection(); 
$statement = $connection->prepare("SELECT something FROM somethingelse"); 
$statement->execute(); 
$results = $statement->fetchAll(); 

Или "продвинет путь":

$connection = Propel::getConnection(); 
$query = 'SELECT MAX(?) AS max FROM ?'; 
$statement = $connection->prepareStatement($query); 
$statement->setString(1, ArticlePeer::CREATED_AT); 
$statement->setString(2, ArticlePeer::TABLE_NAME); 
$resultset = $statement->executeQuery(); 
$resultset->next(); 
$max = $resultset->getInt('max'); 
+0

Большое спасибо за помощь. Но почему вы использовали getDoctrine? И я ничего не могу найти об этом в ссылке, которую вы мне дали :( –

+0

Я отредактировал ответ –

+2

Можете ли вы использовать параметризацию для указания имени столбца или таблицы? Кажется, я помню, что у него были проблемы с этим, и что он явно предназначен только для значений. – halfer

Смежные вопросы