我有以下查询:
return Doctrine_Query::create()
->from('Model_Article m')
->where($where)
->orderBy($order);
在$where
我有这个:
$where='m.title='.$name;
以上产生此错误:
Message: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'sadsa' in 'where clause'. Failing Query: "SELECT COUNT(*) AS num_results FROM article a WHERE a.title = sadsa"
为什么?
答案 0 :(得分:2)
错误是因为生成的查询看起来像“** where title = sadsda **”,因此SQL引擎会查找名为“sadsda”的列。为了防止它,你必须提到,你想要与字符串比较,而不是列值。您可以使用您的引擎规则(通常用“'”括起来),但它不安全,我认为您应该使用占位符引擎,该原则提供,例如
$whereKey = 'm.title=?';
$whereValue = 'sadsda';
Doctrine_Query::create()->from('Model_Article m')->where($whereKey,$whereValue)->orderBy($order);