【问题标题】:Fatal error: Uncaught Error: Call to a member function prepare() on string致命错误:未捕获的错误:调用字符串上的成员函数 prepare()
【发布时间】:2016-06-21 10:57:36
【问题描述】:

在将我的 PHP 版本更新到 7 后,我遇到了一些问题和错误......像这样的一些错误 ->

error -> ( Fatal error: Uncaught Error: Call to a member function prepare() 在字符串上);

//这是我的代码

<?php

/** config **/

class dbConnection
{
    protected $db_conn;

    public $db_host = 'localhost';
    public $db_name = 'test';

    public $db_user = 'root';
    public $db_pass = '';

    function connection()
    {
        try{
            $a = $this->db_conn = new PDO("mysql:host=$this->db_host;dbname=$this->db_name;charset=utf8",$this->db_user,$this->db_pass);
            return $this->db_conn;
        }
        catch(PDOException $e){
            return $e->getMessage();
        }
    }
}

?>

<?php

    /**  Class Users **/

    class ManageUser{

        public $link;

        function __construct(){
            $dbconnection = new dbConnection();
            $this->link = $dbconnection->connection();
            return $this->link;
        }

        //Get user
        function GetUsersInfo($username)
        {
            $query = $this->link->prepare("SELECT * FROM `tbl_administrator` WHERE username = '$username' ");
            $query->bindValue(1, $username, PDO::PARAM_STR);
            $query->execute();
            $result = $query->fetchAll(PDO::FETCH_ASSOC);
            return $result;
        }

    }

?>

<?php

    $n = new ManageUser();
    $a = $n->GetUsersInfo('a');
    print_r($a);

?>

【问题讨论】:

    标签: php oop


    【解决方案1】:

    您有一个exception 是可能的,这就是为什么$this-&gt;linkstring 而不是object。尝试调试此异常。

        catch(PDOException $e){
            var_dump($e);
            return $e->getMessage();
        }
    

    并且请不要捕获异常以从对象方法返回异常消息。 始终尝试处理异常并重新抛出它。在脚本流结束时处理异常。

        catch(PDOException $e){
            // log exception message, ...
            throw $e;
        }
    

    不要设计返回对象(dbconnection)或字符串(异常消息)的方法,这是一个致命的设计。

    【讨论】:

      猜你喜欢
      • 2019-02-11
      • 2016-10-01
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      • 1970-01-01
      • 2018-09-10
      • 2022-01-20
      • 2015-09-14
      相关资源
      最近更新 更多