php变量不存储

标签 php mysql mysqli

我正在尝试使用将主机等作为变量的 php 创建一个数据库类。我无法让初始化值保持不变,我不确定为什么。当我在将它们设置为公共(public)的顶部初始化它们时,它工作正常,但是当我尝试在构造函数中初始化它们时,它不起作用。

    class Database {

    public $dbHost;
    public $dbUser;
    public $dbPass;
    public $dbName;

    public $db;

    public function __construct($Host, $User, $Pass, $Name){ 
        $dbHost = $Host;
        $dbUser = $User;
        $dbPass = $Pass;
        $dbName = $Name;
        $this->dbConnect();
    }

    public function dbConnect(){
        echo $dbPass;
        $this->db = new mysqli($this->dbHost, $this->dbUser, $this->dbPass, $this->dbName);

        /* check connection */
        if (mysqli_connect_errno()){
            printf("Connect failed: %s\n", mysqli_connect_error());
            exit();
        }else{
            //echo 'connection made';
        }
    }

最佳答案

您没有在构造函数中正确初始化它们;尝试:

$this->dbHost = $Host;

您当前正在做的是初始化一个名为 $dbHost 的局部变量,其范围只是构造函数本身。

关于php变量不存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13036479/

相关文章:

mysql - 具有默认值的多对多数据库模式

php - 按年按月的结果 php array foreach

php - mysql: IF 'some columns value' 是 DISTINCT THEN 翻转 bool 值

php - 使 Woocommerce (3.8.0) 管理电子邮件包含结账页面中的我的自定义字段数据

mysql - AWS 2x.large 服务器 Apache 和 Mysql 配置没有很好地利用 CPU 和内存

php - 从数据库中获取的字段长度的奇怪问题

php - 警告 : mysqli_stmt_bind_param() expects parameter 1 to be mysqli_stmt, bool 值给出?

php - Mysql 字段回显

php - 性能 text/html 与 application/json

c# - 将 C# Windows 窗体应用程序连接到基于 Linux 的服务器上的 MySQL 数据库