我正在編寫一個cronjob,它將從一個表中傳輸數據,對其進行處理,然後將其應用於Web應用程序。我有2個單獨的數據庫連接。目前,除了不同的數據庫外,連接憑證是相同的,但上線後,它將完全分離。在1個類中使用多個mysql連接
問題是我創建了一個連接,然後在我的類中將它分配給$ 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_connect爲$這 - >的MySQL()方法,而不是通過mysql_select_db()。如果我嘗試返回mysql_select_db(),mysql_ping不起作用。
這裏是MySQL()方法:
// connect(): Connect to a database (MySQL):
private function mysql($cred) {
$connect = mysql_connect($cred['server'],$cred['username'],$cred['password']);
if($connect) {
$db = mysql_select_db($cred['database']);
if($db) {
return $connect;
} else {
$this->informer("[FATAL]","Could not make a mysql database connection on server ".$_SERVER['SERVER_ADDR']." for database: ".$cred['database']);
}
} else {
$this->informer("[FATAL]","The database credentials appears to be wrong. ".$_SERVER['SERVER_ADDR']." for the mysql database: ".$cred['database']);
}
}
你的mysql(..)函數是怎麼樣的?它是否在正確的連接上使用mysql_select_db? – klaustopher
[你如何連接到單個網頁上的多個MySQL數據庫?](http://stackoverflow.com/questions/274892/how-do-you-connect-to-multiple-mysql-databases-on-單網頁) –
查看上面的重複內容,並記住將第二個'mysql_connect'語句的第四個參數設置爲'true'。 –