Получение неверного маркера параметра в запросе db2 с дополнительным значением привязки - PullRequest
0 голосов
/ 28 сентября 2018

У меня есть php-скрипт, где я выполняю некоторые операторы PDO, и все работает до сих пор.

Недавно я добавил sg.group_code as group_code в свой первый выбор, связав его как одно из моих значений и используяэто в другом выборе, но проблема в том, что теперь я получаю сообщение об ошибке "Использование маркера параметра NULL недопустимо"

Теперь, если я удаляю код группы из моего первого выбора, связанные значения и 2-йвыберите, то все работает нормально.Кроме того, мой второй выбор вручную со значениями работает нормально.

Что я делаю не так, добавляя это одно значение?

<?php

$selectPlacements = "
    SELECT DISTINCT
        sku_id, s.frame as frame, sg.group_code as group_code, s.cover1 as cover, s.color1 as color, dealer_id
    FROM placements p
    inner join skus s 
    on p.sku_id = s.id
    inner join sku_groups sg 
    on sg.id = s.sku_group_id
    where p.expire_date > curdate()
    limit 100
    ;
";

try {
    $placementCheck = $MysqlConn->prepare($selectPlacements);
    $detailRslt = $placementCheck->execute();

     while ($placementRow = $placementCheck->fetch(PDO::FETCH_ASSOC)) {

        print_r($placementRow); //This prints the array I need that gets the parameters below

        $salesValues = [
        ":dealer_id" => $placementRow["dealer_id"],
        ":frame" => $placementRow["frame"],
        ":cover" => $placementRow["cover"],
        ":color" => $placementRow["color"],
        "group_code" => $placementRow["group_code"],
        ];



        $checkSales = "
            SELECT
                count(*) as sales_180,
                180/count(*) as velocity,
                :group_code,
                c.xslsno as salesNum,
                cr.slsupr as VP

            FROM groupSales g
                inner join customers c
                    on g.cstnoc = c.xcstno

                inner join customerReports cr
                    on c.xslsno = cr.xslsno
            WHERE g.cstnoc = :dealer_id
                AND g.framec = :frame
                AND g.covr1c = :cover
                AND g.colr1c = :color
                AND date(substr(g.extd1d,1,4)||'-'||substr(g.EXTD1d,5,2)||'-'||substr(g.EXTD1d,7,2) ) between current_Date - 180 DAY AND current_Date
                GROUP BY c.xslsno, cr.slsupr
        ";

        try{    
            $salesCheck = $DB2conn->prepare($checkSales);
            $salesResult = $salesCheck->execute($salesValues);


        }catch(PDOException $ex) {
            echo "QUERY TWO FAILED!: " .$ex->getMessage(); 
        }
    }

}catch(PDOException $ex) {
    echo "QUERY ONE FAILED!: " .$ex->getMessage();
}

?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...