0

在 Magento 中到处都是,你可以找到类似于

        $select->joinLeft(
            array('c' => $couponTable),
            'c.customer_id=root.entity_id AND c.rule_id=:rule_id',
            array('c.coupon_id')
        );

二元运算符=:有什么作用?

4

2 回答 2

4

=:不是运算符。运算符是=only,它检查是否相等。:rule_id是一个标识符,准备好的 SQL 语句使用它来引用参数。有关更多信息,请参阅准备好的语句。

于 2013-08-02T21:20:54.563 回答
2

它是准备语句的一部分。看看PDO的prepare

<?php
/* Execute a prepared statement by passing an array of values */
$sql = 'SELECT name, colour, calories
    FROM fruit
    WHERE calories < :calories AND colour = :colour';
$sth = $dbh->prepare($sql, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY));
$sth->execute(array(':calories' => 150, ':colour' => 'red'));
$red = $sth->fetchAll();
$sth->execute(array(':calories' => 175, ':colour' => 'yellow'));
$yellow = $sth->fetchAll();
?>

所以在其他地方它将一个值绑定到那个变量......就像

$select->execute(array(":rule_id" => "someValue"));
于 2013-08-02T21:55:32.797 回答