0

我有一个对数据库进行查询的 XML API。我还有一个站点,它使用这个 XML API 函数从我的数据库中获取数据。我想根据用户在我的网站上选择的内容来更改数据库。当用户从选择项中选择区域代码时,ii 调用调用 xml api 调用(php 文件)的 javascript 操作来更改我的数据库。DB 仅针对当前呼叫更改,但我想针对当前会话更改它。在我的 XML API 中,我有一个配置文件,它创建一个 Mysql 类并启动与数据库的连接。该配置文件是 API 的每个 php 文件的 require_once。课堂是这样的:

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 ,但它仅针对特定调用而更改。然后我尝试更改私有 var 数据库,关闭连接并使用新数据库重新打开它,但没有。有人可以给我一个建议吗?我已经完成了我的家庭作业。

4

1 回答 1

0

这种行为的原因之一可能是您的 $object 在每次调用时都被创建为一个新对象。也许您的 PHP MySQL 未配置为创建持久连接。在查看您的 php.ini 以及您如何在各个页面中管理此对象后,我只能判断是否是这种情况。

您需要确保您的 PHP MySQL 设置为 mysql.allow_persistent = 1。您可以在此处阅读有关此设置的更多信息:

http://php.net/manual/en/mysql.configuration.php#ini.mysql.allow-persistent

http://php.net/manual/en/features.persistent-connections.php

希望这可以帮助。

于 2013-01-14T17:26:08.247 回答