Xampp 如何从应用程序中更改数据库源
我正在xammp上开发一个应用程序,允许您添加多个学校,并且随着每个新学校的添加,会添加一个新的数据库。一切都很好 问题在于在我的数据库配置中从数据库名切换到另一个数据库名。我有一个表单操作“set_source”,它会触发setDBNAME操作,但会得到一个未捕获的错误 我尝试了以下代码Xampp 如何从应用程序中更改数据库源,xampp,php-7,Xampp,Php 7,我正在xammp上开发一个应用程序,允许您添加多个学校,并且随着每个新学校的添加,会添加一个新的数据库。一切都很好 问题在于在我的数据库配置中从数据库名切换到另一个数据库名。我有一个表单操作“set_source”,它会触发setDBNAME操作,但会得到一个未捕获的错误 我尝试了以下代码 class dbConfig { public $hostname = 'localhost'; //hostname for db connection
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。不确定你所说的实例化是什么意思,但我已经纠正了错误,仍然有相同的问题。如何在同一页上实例化它?