0
进出口新的PHP和MySQL,我有写问题,我想在这里发生的是我的查询:无法添加条件,MySQL查询在PHP
$query = "SELECT SUM(op.total) as amount_sum
, SUM(r.recurring_price) as recurring_price
, op.subscription
FROM " . DB_PREFIX . "order o
LEFT JOIN " . DB_PREFIX . "order_product op
ON(op.order_id=o.order_id)
LEFT JOIN " . DB_PREFIX . "order_recurring r
ON(r.order_id=o.order_id)
WHERE order_status_id IN(" . implode(",", $implode) . ")
AND o.date_added >= (CURDATE() - INTERVAL 12 MONTH)";
我想这个conditon添加到查询
AND op.subscription ='1'
我只想要这个,如果op.subscription使用这种过滤,因此增加了主查询不起作用等于1 林被添加到查询,但我不明白我怎么可以添加上。我认为是if语句,但是我必须将op.subscription设置为变量吗?我知道我希望能够做的,但我不明白如何将其正确地写在代码
我说这一点,它返回我想要的结果,但它抛出一个警告,以及如果($查询[ 'filter_subscription'] == '1'){ \t \t \t \t \t $查询=“ AND op.subscription ='1'“; \t \t} –
在上面的代码中,$ query是一个字符串,但在您的评论中,您将它视为一个数组。我现在很困惑。 – symcbean
@symcbean'$ implode'是一个完整的未知数,如果你认为数据是无害的,那么你就犯了一个巨大的错误。 PDO不支持绑定到数组,这是真的,但在必要数量的占位符中加入并不难。我也说“*任何*用户数据”,因为它极有可能是“$ implode”包含某种可能来自下拉选择的标识符,例如,原产地为'$ _GET'或'$ _POST'。 – tadman