Php 两个PDO连接错误

Php 两个PDO连接错误,php,Php,嘿,伙计们,我最近转到了PDO和OOP,在连接语句方面遇到了一些问题。我收到的错误是 注意:第14行的C:\Users\PC\Documents\XAMPP\htdocs\libs\class.Manage.php中未定义的变量:db\u host class ManageHits{ protected $link; protected $db_host = "localhost"; protected $db_name = "ajaxrating"; protected $db_user =

嘿,伙计们,我最近转到了PDO和OOP,在连接语句方面遇到了一些问题。我收到的错误是

注意:第14行的C:\Users\PC\Documents\XAMPP\htdocs\libs\class.Manage.php中未定义的变量:db\u host

class ManageHits{

protected $link;
protected $db_host = "localhost";
protected $db_name = "ajaxrating";
protected $db_user = "userone";
protected $db_pass = "passwordone";

function __construct(){
    try{
    $this->link = new PDO($this->$db_host,$this->$db_name,$this->$db_user,$this->$db_pass);
        return $this->link;
    }
    catch(PDOException $e){
        return $e->getMessage;
    }
}
致命错误:无法访问第14行C:\Users\PC\Documents\XAMPP\htdocs\libs\class.Manage.php中的空属性

class ManageHits{

protected $link;
protected $db_host = "localhost";
protected $db_name = "ajaxrating";
protected $db_user = "userone";
protected $db_pass = "passwordone";

function __construct(){
    try{
    $this->link = new PDO($this->$db_host,$this->$db_name,$this->$db_user,$this->$db_pass);
        return $this->link;
    }
    catch(PDOException $e){
        return $e->getMessage;
    }
}
  • 至少阅读任何关于PDO的教程

  • 以正确的方式连接到PDO,创建一个PDO实例

  • 在ManageHits类中传递该实例

    class ManageHits{
    
        protected $link;
    
        function __construct($db){
            $this->link = $db;
        }
    }
    

  • 您在
    新PDO()中错误地调用了对象。

    应该是

    $this->db_host // and so forth
    

    您应该阅读关于PDO的逐步教程

    此外,您的代码有许多问题

  • $e->getMessage;=>$e->getMessage()
  • 我认为构造函数应该是什么
  • 你的变量应该是
  • 构造函数用于实例化类
  • PDO
  • 在构造函数中初始化变量以实现兼容性
  • 这是一个假设您的连接信息正确的工作示例:

    class Con{
    
        protected $link;
        protected $db_host;
        protected $db_name;
        protected $db_user;
        protected $db_pass;
    
        public function __construct(){
    
            $this->db_host = "localhost";
            $this->db_name = "ajaxrating";
            $this->db_user = "userone";
            $this->db_pass = "passwordone";        
    
            try{
    
                $this->connection = new PDO("mysql:host=$this->db_host;dbname=$this->db_name", $this->db_user, $this->db_pass, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8"));
                echo 'Connection established!';
            }
            catch(PDOException $e){
                echo $e->getMessage();
            }
        }
    }
    
    $db = new Con();
    

    非常感谢,我将参加Youtube的OOP和PDO系列节目