我有一个XML API,可以对数据库进行查询。我还有一个使用此XML API函数从我的数据库中获取数据的站点。我想根据用户在我的网站上选择的内容更改数据库。当用户从选择项中选择区域代码时,我调用调用xml api调用(php文件)的javascript操作来更改我的数据库。数据库仅针对当前调用进行更改,但我想为当前会话更改它。在我的XML API中,我有一个配置文件,它创建一个类Mysql,启动与数据库的连接。该配置文件是require_once到API的每个php文件。这个班是这样的:
class Mysql
{
private $host = DB_HOST;
private $username = DB_USER;
private $password = DB_PASS;
private $database = DB_NAME;
private $connection;
private $selection;
public function connect()
{
$connection = mysql_connect($this->host,$this->username,$this->password) or die('Cannot connect to db('.$this->database.'): '. mysql_error());
$selection = mysql_select_db($this->database) or die('Cannot select db: '. mysql_error());
return $connection;
}
public function connect_close()
{
mysql_close();
}
public function change_DB($dbname){
//$this->connect_close();
$this->database = $dbname;
}
public function getDB(){
return $this->database;
}
}
要更改数据库,我尝试在change_DB函数中使用mysql_select_db,但它仅针对spicific调用进行了更改。然后我尝试更改私有var数据库,关闭连接并使用新数据库重新打开它,但什么都没有。 有人可以给我一个建议吗? 我做完了我的作业。
答案 0 :(得分:0)
这种行为的原因之一可能是您的$对象在每次调用时都被创建为新对象。也许您的PHP MySQL未配置为创建持久连接。我只能在查看你的php.ini以及如何在各个页面管理这个对象之后判断是否存在这种情况。
您需要确保使用mysql.allow_persistent = 1设置PHP MySQL。您可以在此处阅读有关此设置的更多信息:
http://php.net/manual/en/mysql.configuration.php#ini.mysql.allow-persistent
http://php.net/manual/en/features.persistent-connections.php
希望这有帮助。