2009-07-29 3 views
1

일찍 일을 혼란스러워했다. 이드는 너에게 그것을 실행 시켜서 누가 워트가 진행되는지 안다.

PHP mysql 연결 혼동

우리 고객을위한 내부 관리 시스템과 그 약정이 시작될 예정입니다. 그것은 서버 [db_1 and db_2]와 PHP 프론트 엔드에있는 두 개의 MySQL 데이터베이스로 구성됩니다. [두 데이터베이스 모두 여러 테이블을 포함합니다.]

아마도 90 개의 PHP 파일이 있는데, 그 중 일부는 데이터베이스에 연결해야하며이 모든 연결은 위에서 언급 한 첫 번째 데이터베이스 [db_1]에 명시 적으로 연결되는 단일 PHP 함수를 통해 이루어지며 로그인 및 암호. 그리고 이것은 잘 작동합니다.

그러나 두 번째 데이터베이스 인 db_2는 내용에 액세스하는 데 자체 로그인과 암호가 필요하지 않습니다.
db_1에 연결하자 마자 우리 테이블의 전체 이름을 사용하는 한 [db_2.usersTable] -> ("SELECT * FROM db_2.usersTable WHERE. .. ").

그리고 이것은 많은 혼란을 야기했습니다.

내 질문은 다음과 같습니다. 일단 서버의 데이터베이스에 연결하면 해당 서버의 다른 데이터베이스에 액세스 할 수 있습니까? 아니면 우리는 무엇인가 간과합니까 ???

모든 의견이 크게 감사 젊은이 ...

답변

4

당신은 일반적으로 특정 데이터베이스로 데이터베이스 서버에 액세스하지만, 하나 이상의 데이터베이스에 대한 액세스 권한이있는 사용자가 없습니다. 예를 들어

:

mysql_connect("localhost", "user", "password") or die(mysql_error()); 

는 서버가 아닌 특정 데이터베이스에 연결합니다.

일단 데이터베이스 서버에 연결되면 해당 사용자에게 권한이있는 모든 데이터베이스에 액세스 할 수 있습니다. 기본 데이터베이스가 아닌 여러 데이터베이스가있는 경우 쿼리에 데이터베이스 이름을 지정하면됩니다.

mysql_select_db("myTable") or die(mysql_error()); 

은 기본값으로 MyTable을 설정하지만 사용자가 권한이있는 다른 테이블에 계속 액세스 할 수 있습니다.

+1

특정 데이터베이스가 아닌 mysql 서버에 연결됩니다. 고마워. 많은 애들이, 나는 지금 그것을 얻을 것 같아! 10/10 –

1

내가 잘못했을 수도 있지만 PHP는 MySQL 서버 사용자와 만 연결하고 인증 할 수 있습니까? 따라서 PHP는 해당 사용자의 권한에 따라 사용자가 액세스 할 수있는 모든 데이터베이스를 선택할 수 있습니다. 당신이 서버의 데이터베이스에 연결하면 내가 ...

1

당신이 연결되어있는 사용자에 대한 권한을 확인 할 해당 서버의 다른 데이터베이스에 액세스 할

하는 경우 다른 데이터베이스에 대한 사용 권한을 가지고 있습니다. 그렇습니다. 연결하면 서버에 연결하고 기본값 인 데이터베이스를 지정된 값으로 설정합니다.그렇기 때문에 액세스하려는 경우 명시 적으로 db_2를 지정해야하지만 db_1을 지정할 필요가 없습니다.