문제

나는 이것에 대해왔다 갔다하는 것 같다. 때로는 그것이 나에게 효과가 있으며, 종종 그렇지 않으며, 왜 그것이 때때로 일할 수 있는지/왜 그것을 얻을 수 있는지 알 수 없으며, 다른 경우에는 그렇지 않을 것이다.

5 개의 데이터베이스가 있으며 유지 보수 루틴 중에 각 데이터베이스를 가져와야합니다. 각 데이터베이스마다 페이지에 포함 된 모든 DB 연결 코드가 포함 된 외부 파일이 있습니다.

포함 된 것은 다음과 같습니다

$SGcon = mysql_connect("localhost","root","");

if (!$SGcon)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("sGopen", $SGcon);

각 데이터베이스마다 다른 다양성을 제공하므로 다음 데이터베이스는 다음과 같습니다.

$PTcon = mysql_connect("localhost","root","");

if (!$PTcon)
  {
  die('Could not connect: ' . mysql_error());
  }

mysql_select_db("pTsecond", $PTcon);

그런 다음 쿼리를 호출하면 사용합니다

 
mysql_query($getQuery,  $PTcon);
mysql_query($secondQuery, $SGcon);

내가 실행하는 문제는 쿼리에 사용 된 올바른 데이터베이스를 얻지 못한다는 것입니다. 내 스크립트가 마지막 페이지에 추가 된 데이터베이스를 사용하는 것 같습니다.

데이터베이스 연결을 사용할 수있는 더 좋은 방법이 있습니까?

데이터베이스 사이에는 한 DB에서 데이터를 다른 DB에서 데이터로 비교하므로 데이터베이스 사이에 많은 앞뒤가 있습니다. 따라서 이에 대해서도 효율적으로 노력하고 있습니다.

고마워 피트

도움이 되었습니까?

해결책

기본적으로 동일한 인수를 전달하는 경우 mysql_connect 이전 호출로서 새 연결을 만드는 대신 사용 가능한 경우 캐시 된 연결을 반환합니다. 그래서 두 쿼리는 마지막으로 통과 한 데이터베이스에 대해 실행 중입니다. mysql_select_db.

통과 new_link=true 데이터베이스 연결은 비쌀 수 있지만 합리적으로 가능한 한 적은 수의 개방을 유지해야하지만 이러한 동작을 피할 수 있습니다.

New_Link에 대한 자세한 설명 :

두 번째 전화가 이루어지면 mysql_connect() 동일한 인수를 사용하면 새 링크가 설정되지 않지만 대신 이미 열린 링크의 링크 식별자가 반환됩니다. New_Link 매개 변수는이 동작을 수정하고 만듭니다 mysql_connect() 항상 새 링크를 엽니 다 mysql_connect() 동일한 매개 변수로 이전에 호출되었습니다. SQL 안전 모드에서는이 매개 변수가 무시됩니다.

다른 팁

각 쿼리 사이에 DB 연결을 닫으면 문제가 해결 될 것이라고 생각합니다.

데이터베이스간에 많은 비교를하고 있다면 1 Select 문을 사용하여 모든 데이터베이스를 한 번에 쿼리합니다.

특정한 이유가 없다면 DB 연결을 최대한 낮게 유지하려고합니다. 하나의 연결을 사용하고 mysql_query () 메소드의 기능을 확장하는 메소드를 작성합니다. SQL 문자열을 전달하고 테이블 이름을 전달할 수 있으며 함수는 MySQL_Select_DB ($ tableName)를 호출하고 동일한 연결을 재사용하여 SQL을 처리합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top