나는 일반적으로 여러 데이터베이스 중 하나를 선택하는 간단한 PHP/MySql 응용 프로그램을 가지고 있습니다 (고객마다 하나씩). 그러나 공통 데이터베이스에 액세스하는 유틸리티 기능을 자주 호출합니다.푸시/팝 현재 데이터베이스
코드 전체에 USE
절을 뿌리지 않으므로 각 유틸리티 기능의 시작 부분에 현재 데이터베이스를 밀어 넣고 마지막에 다시 팝업해야하는 것처럼 보입니다. 이것과 같은 것 (머리의 꼭대기에서, 그렇게 prolly는 일하지 않을 것이다. 그러나 생각을 줄 것이다).
function ConnectToDatabase($db)
{
global $current_database;
$current_database = $db;
odb_exec('USE ' . $db); // etc. Error handling omitted for clarity
}
function UtilityFunction()
{
odb_exec('USE common_db'); // etc. Error handling omitted for clarity
// do some work here
global $current_database;
ConnectToDatabase($current_database);
}
어쩌면 나는 PopCurrentDb
기능으로 global $current_database; ConnectToDatabase($current_database);
를 결합하여이 예뻐 할 수 있지만, 당신은 그림을 얻는다.
이것은 PHP에서 더 잘 했습니까? MySql 솔루션이 있습니까 (나중에 ODBC 호환을 원하므로 PHP가 더 좋을 수도 있습니다). 다른 사람들은 어떻게합니까?
업데이트 : 결국 난 그냥 항상 완전히
예를 들어, 액세스 자격을하기로 결정 SELECT * from $database . '.' . $table
처럼 보일 수 있습니다? :) – deceze
db를 선택하려면 mysql_select_db를 입력하십시오. – Ibu
+1 예, 두 번째 연결을 여는 것이 대안입니다. 하나만 가지고 있으면 간단하고 매우 복잡한 프로그램이 아닙니다. – Mawg