MySQL Queries с использованием Doctrine & CodeIgniter - PullRequest
0 голосов
/ 24 апреля 2010

РЕДАКТИРОВАТЬ: причина, по которой мои запросы Doctrine (см. Ниже) не работали / вызвали эти ошибки, была в том, что я пропустил

ci_doctrine.

при создании этой базы данных:

CREATE TABLE `ci_doctrine`.`user` (
    `id` INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY ,
    `username` VARCHAR( 255 ) NOT NULL ,
    `password` VARCHAR( 255 ) NOT NULL ,
    `first_name` VARCHAR( 255 ) NOT NULL ,
    `last_name` VARCHAR( 255 ) NOT NULL ,
    UNIQUE (`username`
)
)

Конец редактирования

Как писать плоские SQL-запросы с использованием объекта подключения Doctrine и отображать результаты? Например, как мне выполнить:

SELECT * FROM table_name WHERE column_name LIKE '%anything_similar_to_this%';

с использованием Doctrine как-то так (этот пример не работает)

 $search_key = 'search_for_this';

 $conn = Doctrine_Manager::connection();

 $conn->execute('SELECT * FROM table_name WHERE column_name LIKE ?)',  $search_key);

 echo $conn;  

Я также пробовал:

$search_key = 2;
$q = new Doctrine_RawSql();
$result = $q->select('column_name')
  ->from('table_name')
  ->where('id = ?', $search_key)
  ->execute();

echo $result;

Ответы [ 2 ]

1 голос
/ 24 апреля 2010

У вас есть лишние скобки, которые, вероятно, вызывают ошибку. Попробуйте изменить:

SELECT * FROM table_name WHERE column_name LIKE ?)

до:

SELECT * FROM table_name WHERE column_name LIKE ?

Если это все еще не работает, попробуйте опубликовать сообщение об ошибке.

1 голос
/ 24 апреля 2010

Doctrine использует свой собственный язык запросов, называемый DQL. И он использует класс запросов для обработки запросов, называемых Doctrine_Query. С помощью этого класса вы можете создать запрос, используя так называемый построитель запросов.

Вы можете посмотреть документацию на http://doctrine -project.com , чтобы узнать, как она работает точно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...