我有一个查询,其中CHAR_LENGTH用于addFieldToFilter,如下所示
$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注入有一个修复,但找不到如何替换这个
答案 0 :(得分:0)
嗯..我自己得到了答案。
$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();
那是为我做的!