Xampp 如何从应用程序中更改数据库源

Xampp 如何从应用程序中更改数据库源,xampp,php-7,Xampp,Php 7,我正在xammp上开发一个应用程序,允许您添加多个学校,并且随着每个新学校的添加,会添加一个新的数据库。一切都很好 问题在于在我的数据库配置中从数据库名切换到另一个数据库名。我有一个表单操作“set_source”,它会触发setDBNAME操作,但会得到一个未捕获的错误 我尝试了以下代码 class dbConfig { public $hostname = 'localhost'; //hostname for db connection

我正在xammp上开发一个应用程序,允许您添加多个学校,并且随着每个新学校的添加,会添加一个新的数据库。一切都很好

问题在于在我的数据库配置中从数据库名切换到另一个数据库名。我有一个表单操作“set_source”,它会触发setDBNAME操作,但会得到一个未捕获的错误

我尝试了以下代码

    class dbConfig
    {
        public $hostname = 'localhost';   //hostname for db connection
        public $username = 'root';  // username for db connection
        public $password = 'password';  //password for db conection         
        public $dbname   = 'school1'; //this must be dynamically changeable
        public $mysqli;

        function setDBNAME($id)
        {
            $sql = "SELECT `school_name`, `subdomain`, `selected`, `url` FROM board.school WHERE school_id = $id AND selected = 'True'"; 
$data = $this->mysqli->execute_query($sql); //line triggering error
       if($data) {
  return new dbConfig(localhost, root, password, $data['url']);
       } 
       else {
  return null;
       }

    }

    }
但是得到了以下错误

    Fatal error: Uncaught Error: Call to a member function execute_query()
    on null in path\to\file\dbConfig.php:15 Stack trace: #0 path\to
    \file\myaccountController.php(50): dbConfig->setDBNAME('1') #1
    path\to\file\Controller11.php(29): myaccountController->set_source()
    #2 path\to\file\myaccount.php(20): Controller11->run() #3 {main}
    thrown in path\to\file\dbConfig.php on line 15

任何指针和/或解决方案都是非常有用的

您的数据库配置中没有$mysqli变量吗?在$dbname:public$mysqli下面插入此命令;谢谢@Lars Hansen,但致命错误仍然存在。我在phpmyadmin中运行SQL查询并得到一个结果。为什么你的代码中有一个$mysql和一个$mysqli是空的?你是否在某处实例化了$mysqli类?代码需要知道$this->mysqli是一个mysqli类。就我个人而言,我使用PDO-更易于使用,而且您可以非常轻松地更改db。谢谢@Lars Hansen。不确定你所说的实例化是什么意思,但我已经纠正了错误,仍然有相同的问题。如何在同一页上实例化它?