0

Hi i know this question is here on a lot of sites, but still.

this is the Query which is called in the Code by:

$exec = $dbh->prepare($query); //query as shown below
                pr($exec); // output for me
                $exec->execute();

i get no errors from pdo nor from anything. if i copy the query below 1:1 i get the right values.

wrong values are 'sum' and 'sum_bank', so ofc the calculations are wrong aswell.

INSERT INTO `db`.`inserttable` 

                    SELECT null as `id`, `state`,`company`.`rid`,
                    8 as `month`,
                    19 as `day`,
                    (
                    SELECT count(company2.cid)
                        FROM `company` as `company2`
                        LEFT JOIN `db`.`gid` ON `company2`.`cid` = `db`.`gid`.`cid`
                        WHERE `company2`.`state` = `company`.`state` AND gid.`gid` = `company`.`rid`
                    ) as `sum`,
                    SUM(IF(`ctype` = 'company', 1, 0)) as `sum_company`,
                    (
                    SELECT count(company2.cid)
                        FROM `company` as `company2`
                        LEFT JOIN `db`.`gid` ON `company2`.`cid` = `db`.`gid`.`cid`
                        WHERE `company2`.`state` = `company`.`state` AND `gid`.`gid` = `company`.`rid` AND `ctype` = 'bank'
                    ) as `sum_bank`,
                    (SUM(IF(`ctype` = 'company', 1, 0)) / (SELECT `sum`)) * 100 as `prc_company`,
                    (SUM(IF(`ctype` = 'bank', 1, 0)) / (SELECT `sum`)) * 100 as `prc_bank`,
                    SUM(`isBir`) as `sum_isBir`,
                    SUM(`isCgr`) as `sum_isCgr`,
                    SUM(`isBar`) as `sum_isBar`,
                    (SUM(`isBir`) / (SELECT `sum`)) * 100 as `prc_isBir`,
                    (SUM(`isCgr`) / (SELECT `sum`)) * 100 as `prc_isCgr`,
                    (SUM(`isBar`) / (SELECT `sum`)) * 100 as `prc_isBar`
                    FROM `db`.`company`
                    GROUP BY `db`.`company`.`state`, `db`.`company`.`rid`

for error checking :

$dbh  = Database::getInstance();

            try {
                $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
                $dbh->setAttribute( PDO::ATTR_EMULATE_PREPARES, false );
                $exec = $dbh->prepare($query);
                pr($exec);
                $exec->execute();
                pr($dbh->errorInfo());

            } catch(PDOException $e) {
                return array('Exception' => array('code' => $e->getCode(), 'message' => $e->getMessage()));
            }

answer is:

 array(1) {
 [0]=>
  string(5) "00000"
}

so seriously.. i get no errors

i could solve it myself:

error was : FROM company as company2 turn into : FROM db.company as company2

in php my admin i selected the correct database due to that, it worked there.

sadly it didn't threw an error in any form, would have spared me a lot of time

0 Answers0