我有一个查询,其中在addFieldToFilter中使用CHAR_LENGTH,如下所示
$quotes_count = Mage::getModel('sales/quote')->getCollection()
->addFieldToFilter('part_quote_id', array("like" => $part_quote_id . "%"))
->addFieldToFilter('CHAR_LENGTH(part_quote_id)', '12')
->getSize();
我收到以下错误“报价保存错误:SQLSTATE [42S22]:找不到列:1054” where子句”中的未知列'CHAR_LENGTH(part_quote_id)'
这是在应用补丁6788之后的。我知道有一个用于SQL注入的修复程序,但是找不到如何替换它
最佳答案
好吧..我自己得到了答案。
$quotes_count = Mage::getModel('sales/quote')->getCollection()
->addFieldToFilter('part_quote_id', array("like" => $part_quote_id . "%"));
// ->addFieldToFilter('CHAR_LENGTH(part_quote_id)', '12')
// ->getSize();
$quotes_count->getSelect()->where("CHAR_LENGTH(part_quote_id) = 12");
$quotes_count = $quotes_count->getSize();
为我做到了!