MySQL查询使用Doctrine&笨

时间:2010-04-24 13:23:47

标签: mysql codeigniter doctrine

编辑:我的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`
)
)

编辑结束

如何使用Doctrine连接对象编写平面SQL查询并显示结果?例如,我该如何执行:

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 个答案:

答案 0 :(得分:1)

Doctrine使用它自己的查询语言DQL。它使用查询类来处理名为Doctrine_Query的查询。通过这个类,您可以使用所谓的查询构建器构建查询。

您可以查看http://doctrine-project.com处的文档,了解其工作原理。

答案 1 :(得分:1)

您有一个不必要的括号,可能会导致错误。尝试更改:

SELECT * FROM table_name WHERE column_name LIKE ?)

为:

SELECT * FROM table_name WHERE column_name LIKE ?

如果仍然无效,请尝试发布错误消息。