Was verursacht SQLState [42000]: Syntaxfehler oder Zugriffsverletzung: 1064 beim Versuch, Tabellen zu gruppieren?

magento.stackexchange https://magento.stackexchange.com/questions/11131

Frage

Ich habe versucht herauszufinden, was die Ausnahme verursacht, wenn ich versucht habe, einen Join für meine Sammlungen zu erstellen und sie mit dem Main_Table zu gruppieren.

Hier ist der Code aus meiner Sammlung.php

<?php

class Companyname_CheckoutComments_Model_Resource_Comment_Collection extends Mage_Core_Model_Resource_Db_Collection_Abstract{


    protected function _construct() {

        $this->_init('checkoutcomments/comment');
    }
    public function addCustomerFilter($customer){

        $select = $this->getSelect();
        if ($customer->getId()){
            $select->where('order.customer_id?', $customer->getId());
        } else {
            //Force empty result set for not logged in customers
            $select->where('1=0');
        }

        $select->join(array('order' => $this->getTable('sales/order')),
                'order.entity_id = main_table.order_id',
                array('status', 'created_at'));

        $select->join(array('order_item' => $this->getTable('sales/order_item')),
                'order_item.order_id = main_table.order_id
                AND order_item.parent_item_id IS NULL ',
                array());

        /** Mage_Core_Model_Resource_Helper_Mysql4 */
        Mage::getResourceHelper('core')->addGroupConcatColumn($select, 'product_names', 'order_item.name', ', ' );
        $select->group('main_table.comment_id');
        return $this;
    }
}

Die Linie, die mir Trauer gibt, lautet:

$select->group('main_table.comment_id');

Da es einen Fehler verursacht, den ich anscheinend nicht beheben kann

QLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''2') GROUP BY `main_table`.`comment_id`' at line 4

SELECT `main_table`.*, `order`.`status`, `order`.`created_at`, GROUP_CONCAT(order_item.name SEPARATOR ', ') AS `product_names` FROM `checkout_comments` AS `main_table` INNER JOIN `sales_flat_order` AS `order` ON order.entity_id = main_table.order_id INNER JOIN `sales_flat_order_item` AS `order_item` ON order_item.order_id = main_table.order_id AND order_item.parent_item_id IS NULL WHERE (order.customer_id'2') GROUP BY `main_table`.`comment_id`

Wenn jemand die richtige Syntax kennt, können Sie bitte einen Fehler in meinem Code haben, den ich verpasst habe.

Danke im Voraus Jungs!

War es hilfreich?

Lösung

Das Problem war in der Tat Zeile 4

$select->where('order.customer_id?', $customer->getId());

Muß sein

$select->where('order.customer_id=?', $customer->getId());
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top