2009-08-14 6 views
0

Mysql接続を開いて閉じ、その後古いレガシーコードを実行する必要があります。レガシーコードには独自の接続があり、リソースパラメータなしでmysql_query($ sql)を呼び出すだけです。PHPで2つのmysql接続を処理するプロジェクトのために

どうすれば対応できますか? MySQLの接続をグローバルに設定できますか? mysql_connect()文を再実行する必要がありますか?レガシーコードを今すぐリファクタリングすることはできません。ここで

短いデモ

<?php 

function show() 
{ 
    $a = mysql_fetch_array(mysql_query('select database()')); 
    echo $a[0] . "<br>"; 
} 

$conn = mysql_connect('localhost', 'root', '', TRUE); 
mysql_select_db('dredd'); 
show(); 

mysql_connect('localhost', 'root', '', TRUE); 
mysql_select_db('afup'); 
show(); 
mysql_close(); 

$a = mysql_fetch_array(mysql_query('select database()', $conn)); 
echo $a[0] . "<br>"; 

show(); 

最初の選択は、第二の二okです、それはressourceを持っているので、第三はOKですが、4番目はアクセスは、ユーザーのための 『ODBC』を拒否された」(破りました@」 localhost '(パスワードを使用:NO) ")。

よろしく、セドリック

答えて

5

あなたは、例えば、あなたが最初に他の接続を閉じた場合、それは[OK]をする必要がありので、それは、1を作成し、最後に使用する接続を指定しない場合

//open your db connection 
$conn1 = mysql_connect(); 
mysql_query($sql, $conn1); 
mysql_close($conn1); 

//open legacy code's db connection 
$conn = mysql_connect(); 
//run legacy code 

問題がある場合、それは、あなたが、彼らは間違いなく、レガシーコードを変更せずに分離されている知っているので、第二の接続のためにPDOまたはmysqliのを使用する方が簡単かもしれません。

+0

私のDB接続はエラーキャッチアップシステムのため、レガシーコードが中断され、コードが実行され、レガシーコードが継続されます。しかし、あなたの考えは非常に良いです、ありがとう!私はそれをできるだけ早く試みる。 –

関連する問題