• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

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

php 搞代码 4年前 (2022-01-25) 29次浏览 已收录 0个评论
文章目录[隐藏]
<code>Think PHP在3.2之后好像就不支持PDO扩展了,然后我为了用PDO在控制层中写了一个php文件,里面只是写了实例化PDO的一段代码,我在控制请中引入这个文件,刚开始连接查询数据的时候没有错误,但是好像是有返回值的时候就报了一个——“**Call to a member function query() on a non-object**”的错误,有哪位了解的,请教下</code>
<code>pdo.class.php<?php$PDO = new PDO('mysql:host=localhost;dbname=cxshop', 'root', '',array(    PDO::ATTR_PERSISTENT => true));?></code>
<code>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;        }    }</code>

上面的代码可以忽略不看,就是Think PHP链接PDO的问题

本文来源gaodai#ma#com搞*!代#%^码$网!搞代gaodaima码

回复内容:

<code>Think PHP在3.2之后好像就不支持PDO扩展了,然后我为了用PDO在控制层中写了一个php文件,里面只是写了实例化PDO的一段代码,我在控制请中引入这个文件,刚开始连接查询数据的时候没有错误,但是好像是有返回值的时候就报了一个——“**Call to a member function query() on a non-object**”的错误,有哪位了解的,请教下</code>
<code>pdo.class.php<?php$PDO = new PDO('mysql:host=localhost;dbname=cxshop', 'root', '',array(    PDO::ATTR_PERSISTENT => true));?></code>
<code>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;        }    }</code>

上面的代码可以忽略不看,就是Think PHP链接PDO的问题

“on a non-object”说明你调用了对象不存在的方法,或这个对象没有实例化。检查下代码,留意在调用对象的方法的位置。

试试把query换做exec


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PDO——Call to a member function query() on a non-object
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址