Magento:在6788补丁

时间:2016-04-19 12:41:04

标签: mysql magento

我有一个查询,其中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注入有一个修复,但找不到如何替换这个

1 个答案:

答案 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();

那是为我做的!