登录

第77行说非对象调用函数fetch()那位大牛解释一下 实在找不到

<?phpclass Db{    private  $dbConfig=[                        'db'=>'mysql',                        'host'=>'localhost',                        'port'=>'3306',                        'user'=>'root',                        'pass'=>'root',                        'charset'=>'utf8',                        'dbname'=>'edu',        ];    //单例模式    private  static  $instance  = null;    public  $insertID = null;    public  $num1 = null;    ///数据库的连接    private $conn = null;    private  function __construct($params)    {        //初始化参数        array_merge($this->dbConfig, $params);        //连接数据库        $this->connect();    }    private   function  __clone()    {        // TODO: Implement __clone() method.    }    public  static  function  getInstance($params=[])    {        if(!self::$instance instanceof  self){            self::$instance = new self($params);        }        return self::$instance;    }    private function  connect()    {        try {                $dsn="{$this->dbConfig['db']}:host={$this->dbConfig['host']};                port={$this->dbConfig['port']};dbname={$this->dbConfig['dbname']};                charset={$this->dbConfig['charset']}";                //创建pdo对象                $this->conn= new PDO($dsn,$this->dbConfig['user'],$this->dbConfig['pass']);                 ////                 $this->conn->query("SET NAMES {$this->dbConfig['charset']}");        }catch (PDOException $e)        {            die('数据库连接失败'.$e->getMessage());        }    }    public  function  exec($sql)    {        $num = $this->conn->exec($sql);        if($num>0)        {            if(null !== $this->conn->lastInsertID())            {                $this->insertID = $this->conn->lastInsertID();            }            $this->num1= $num;        }        else{            $error = $this->conn->errorInfo();            //0 是错误标识符  1 是错误代码 2 是错误信息            print '操作失败'.$error[0].':'.$error[1].':'.$error[2];        }    }    public function  fetch($sql)    {        return  $this->conn->query($sql)->fetch(PDO::FETCH_ASSOC);    }    public function  fetchALl($sql)    {        return  $this->conn->query($sql)->fetch(PDO::FETCH_ASSOC);;    }}

# PHP
远处一朵花 远处一朵花 1194 天前 641 次浏览

全部回复(1) 我要回复

  • 灭绝师太

    灭绝师太2021-01-12 09:08:06

    pdo对象没有获取成功,调用了一个对象成员方法fetch, 检查连接参数.

    回复
    0
  • 取消 回复 发送