Magento Semicolon打破查询

时间:2016-03-11 04:50:25

标签: mysql magento

好的,肯定有办法让这段代码正常工作

->addExpressionFieldToSelect(
            'learn_about_us',
            '(SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(p.fields,";",2),":",-1) FROM plugincompany_contactforms_entry p WHERE main_table.entity_id = p.entity_id)'
        );
无论出于何种原因,该死的分号都在破碎。我想在那里因为处理序列化数据而不想处理php端。但是...如果有人有任何问题我可以如何让这个查询工作,请让我知道。

这是错误btw

Column not found: 1054 Unknown column '(SELECT SUBSTRING_INDEX(SUBSTRING_INDEX(p.fields,";",2),":",-1) 

临时解决方案

不确定如何解决这个问题,但在此文件中

app/code/core/Zend/Db/Select.php

第1396行附近有一个受保护的变量

protected $_controlCharacters = array(
        ';',
        '--',
        '#',
        '/*',
        '*/',
    );

注意开头的分号,如果我删除了这个,那么我的查询最终会有效...不要退出确定是否有办法解决这个问题= \

1 个答案:

答案 0 :(得分:0)

我不认为你的分号是破碎的东西。 addExpressionFieldToSelect()有3个参数,$alias, $expression, $fields,您错过了其中一个参数。