This is my Query in Magento.
$where = "LIKE '%".$value."%'";
foreach($tokens as $token) {
$where .= " OR at_name.value LIKE '%$token%'";
}
$this->getCollection()->getSelect()
->joinInner(array('at_name' => 'mgmx_catalog_product_entity_text'), '(at_name.entity_id = at_visibility.entity_id)')
->where("at_name.value ?" ,$where);
If I run this Query, it will return an error
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''LIKE \'%REMAX GREY%\' OR at_name.value LIKE \'%REMAX%\' OR at_name.value LIKE \' at line 4
This is the query in Mysql.
SELECT COUNT(DISTINCT e.entity_id)
FROM `mgmx_catalog_product_entity` AS `e`
INNER JOIN `mgmx_catalog_product_entity_int` AS `at_status`
ON (`at_status`.`entity_id` = `e`.`entity_id`) AND
(`at_status`.`attribute_id` = '96') AND (`at_status`.`store_id` = 0)
INNER JOIN `mgmx_catalog_product_entity_int` AS `at_visibility`
ON (`at_visibility`.`entity_id` = `e`.`entity_id`) AND
(`at_visibility`.`attribute_id` = '102') AND (`at_visibility`.`store_id` = 0)
INNER JOIN `mgmx_catalog_product_entity_text` AS `at_name` ON (at_name.entity_id = at_visibility.entity_id) WHERE (at_name.value 'LIKE
\'%REMAX GREY%\' OR at_name.value LIKE \'%REMAX%\' OR at_name.value LIKE
\'%GREY%\'')
The error is here somewhere
(at_name.value 'LIKE
\'%REMAX GREY%\' OR at_name.value LIKE \'%REMAX%\' OR at_name.value LIKE
\'%GREY%\'')
If I remove the ''
and the \
it will run normally. Like so
(at_name.value LIKE
'%REMAX GREY%' OR at_name.value LIKE '%REMAX%' OR at_name.value LIKE
'%GREY%')
I can't get rid of it as the zend framework is the one doing the '' and the backslashes. How do i deal with this?
Thanks.