PDO——Call to a member function query() on a non-object

來源:互聯網
上載者:User
Think PHP在3.2之後好像就不支援PDO擴充了,然後我為了用PDO在控制層中寫了一個php檔案,裡面只是寫了執行個體化PDO的一段代碼,我在控制請中引入這個檔案,剛開始串連查詢資料的時候沒有錯誤,但是好像是有傳回值的時候就報了一個——“**Call to a member function query() on a non-object**”的錯誤,有哪位瞭解的,請教下
pdo.class.php true));?>
CommonController.class.phppublic function checkPDO($rolename,$mid=1){        if (intval($mid) > 0) {            require_once('Pdo.class.php');            $res = $PDO->query("SELECT r_id as rid FROM `shop_role` where r_method='$rolename' limit 1");            //             $roleres = $res->fetch(2);            $checkmethID = $roleres['rid'];            // dump($checkmethID);exit;            $res = $PDO->query("SELECT gid FROM `shop_ag_access` where mid='$mid'");            $agres = $res->fetchAll(2);            if($checkmethID){                foreach ($agres as $key => $value) {                    $rges = $PDO->query("SELECT rid FROM `shop_rg_access` where gid='".$value['gid']."'");                    $rges = $rges->fetchAll(2);                    if (!$rges) {                        return fasle;                    }                    $rgarr = array();                    foreach ($rges as $kk => $val) {                        $rgarr[] = $val['rid'];                    }                    $agres[$key]['gid'] = $rgarr;                }                $PDO = null;                $arr = array();                foreach ($agres as $key => $value) {                    $arr[] = $value['gid'];                }                foreach ($arr as $key => $value) {                    if (in_array($checkmethID, $value) == true) {                        return true;                    }                }                return false;            }else{                return false;            }        }else{            return false;        }    }

上面的代碼可以忽略不看,就是Think PHP連結PDO的問題

回複內容:

Think PHP在3.2之後好像就不支援PDO擴充了,然後我為了用PDO在控制層中寫了一個php檔案,裡面只是寫了執行個體化PDO的一段代碼,我在控制請中引入這個檔案,剛開始串連查詢資料的時候沒有錯誤,但是好像是有傳回值的時候就報了一個——“**Call to a member function query() on a non-object**”的錯誤,有哪位瞭解的,請教下
pdo.class.php true));?>
CommonController.class.phppublic function checkPDO($rolename,$mid=1){        if (intval($mid) > 0) {            require_once('Pdo.class.php');            $res = $PDO->query("SELECT r_id as rid FROM `shop_role` where r_method='$rolename' limit 1");            //             $roleres = $res->fetch(2);            $checkmethID = $roleres['rid'];            // dump($checkmethID);exit;            $res = $PDO->query("SELECT gid FROM `shop_ag_access` where mid='$mid'");            $agres = $res->fetchAll(2);            if($checkmethID){                foreach ($agres as $key => $value) {                    $rges = $PDO->query("SELECT rid FROM `shop_rg_access` where gid='".$value['gid']."'");                    $rges = $rges->fetchAll(2);                    if (!$rges) {                        return fasle;                    }                    $rgarr = array();                    foreach ($rges as $kk => $val) {                        $rgarr[] = $val['rid'];                    }                    $agres[$key]['gid'] = $rgarr;                }                $PDO = null;                $arr = array();                foreach ($agres as $key => $value) {                    $arr[] = $value['gid'];                }                foreach ($arr as $key => $value) {                    if (in_array($checkmethID, $value) == true) {                        return true;                    }                }                return false;            }else{                return false;            }        }else{            return false;        }    }

上面的代碼可以忽略不看,就是Think PHP連結PDO的問題

“on a non-object”說明你調用了對象不存在的方法,或這個對象沒有執行個體化。檢查下代碼,留意在調用對象的方法的位置。

試試把query換做exec

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.