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