Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在一个类中使用多个mysql连接_Php_Mysql - Fatal编程技术网

Php 在一个类中使用多个mysql连接

Php 在一个类中使用多个mysql连接,php,mysql,Php,Mysql,我正在编写一个cronjob,它将从一个表中传输数据,对其进行处理,然后将其应用于web应用程序。我有两个独立的数据库连接。目前,连接凭据是相同的,只是它的数据库不同,但在运行时,它将完全分开 问题是我正在创建一个连接,然后在类中将其分配给$this->staging,另一个称为$this->production。我使用mysql_ping来确保两个连接都正常工作 当它执行查询时,似乎会忽略连接标识符($this->staging示例),并尝试对创建的2个连接中的最后一个进行查询 我在查询中使用

我正在编写一个cronjob,它将从一个表中传输数据,对其进行处理,然后将其应用于web应用程序。我有两个独立的数据库连接。目前,连接凭据是相同的,只是它的数据库不同,但在运行时,它将完全分开

问题是我正在创建一个连接,然后在类中将其分配给$this->staging,另一个称为$this->production。我使用mysql_ping来确保两个连接都正常工作

当它执行查询时,似乎会忽略连接标识符($this->staging示例),并尝试对创建的2个连接中的最后一个进行查询

我在查询中使用连接标识符:

 // Connection:

 $this->staging = $this->mysql($config['staging']);
 $this->production = $this->mysql($config['production']);

 $sql = "SELECT * FROM TABLE";
 $query = mysql_query($sql,$this->staging);

 // Returns an unknown table in database defined in $this->production.
我返回mysql\u connect作为$this->mysql()方法,而不是mysql\u select\u db()。如果我尝试返回mysql\u select\u db()mysql\u ping,则无法运行

下面是mysql()方法:


问题的发生是因为您连接到同一个MySql服务器,当您连接到登台(第二个连接)时,PHP返回为生产创建的相同连接,而不创建新连接,要强制PHP创建新连接,您应该将“MySql\u connect”调用更改为如下所示:

 $connect = mysql_connect($cred['server'],$cred['username'],$cred['password'], true);
这将强制PHP启动新连接


Ref:

问题的发生是因为您连接到同一个MySql服务器,当您连接到暂存(第二个连接)时,PHP返回为生产创建的相同连接,而不创建新连接,要强制PHP创建新连接,您应该将“MySql\u connect”调用更改为如下:

 $connect = mysql_connect($cred['server'],$cred['username'],$cred['password'], true);
这将强制PHP启动新连接


Ref:

您的mysql(..)函数是什么样子的?它是否在正确的连接上使用mysql_select_db?可能的重复请参见上面的重复,并记住将'true'设置为第二个
mysql_connect
语句的第四个参数。顺便说一句:您应该切换到PDO或mysqli_*函数(请参见:)您的mysql(..)函数看起来如何?它是否在正确的连接上使用mysql_select_db?可能的重复请参见上面的重复,并记住将'true'设置为第二个
mysql_connect
语句的第四个参数。顺便说一句:您应该切换到PDO或mysqli_*函数(请参见:)