이 기사의 예에는 ThinkPHP가 데이터베이스에 연결하는 몇 가지 일반적인 방법이 요약되어 있습니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 내용은 다음과 같습니다.
ThinkPHP에는 다양한 데이터베이스 작업을 캡슐화하는 추상 데이터베이스 액세스 계층이 내장되어 있습니다. 다른 데이터베이스에 대한 다른 코드 및 기본 구현을 작성하지 않고도 작동하려면 공용 Db 클래스만 사용하면 됩니다. 데이터베이스 어댑터는 처리에 사용됩니다. 현재 데이터베이스에는 Mysql, MsSQL, PgSQL, Sqlite, Oracle, Ibase 및 PDO 지원이 포함됩니다. 애플리케이션이 데이터베이스를 사용해야 하는 경우 데이터베이스 구성 파일에 여러 정의 방법이 있어야 합니다. :
첫 번째 유형: 프로젝트 구성 파일에서 정의
반환 배열(
'DB_TYPE'=> 'mysql',
'DB_HOST'=> '로컬호스트',
'DB_NAME'=>'thinkphp',
'DB_USER'=>'루트',
'DB_PWD'=>'',
'DB_PORT'=>'3306',
'DB_PREFIX'=>'생각_',
// 기타 프로젝트 구성 매개변수…………
);
일반적으로 프로젝트의 데이터베이스 액세스 구성이 동일하기 때문에 시스템에서는 이 방법을 사용하도록 권장합니다. 이 방법은 데이터베이스에 연결할 때 시스템에서 자동으로 가져오며 수동으로 연결할 필요가 없습니다.
프로젝트마다 서로 다른 데이터베이스 연결 정보를 정의할 수 있으며, 디버그 데이터베이스 구성 정보가 프로젝트 구성 파일 및 디버그 모드 구성에 정의되어 있는 경우 디버그 구성 파일(Conf/debug.php)에서도 정의할 수 있습니다. 데이터베이스 연결 정보를 동시에 파일에 저장하면 후자는 디버깅 모드에서 적용되고 전자는 배포 모드에서 적용됩니다.
두 번째 방법은 Db 클래스 초기화 시 DSN 방식을 사용하여 매개변수를 전달하는 것입니다
$db_dsn = "mysql://username:passwd@ localhost:3306 /DbName";
$db = 새 DB($db_dsn);
이 방법은 주로 컨트롤러에서 수동으로 데이터베이스에 연결하거나 여러 데이터베이스 연결을 생성하는 데 사용됩니다.
세 번째 방법은 배열을 사용하여 매개변수를 전달하는 것입니다
$DSN = array(
'dbms' => 'mysql',
'사용자 이름' => '사용자 이름',
'비밀번호' => '비밀번호',
'호스트 이름' => 'localhost',
'호스트포트' => '3306',
'데이터베이스' => 'DB 이름'
);
$db = 새 DB($DSN);
이 방법은 데이터베이스에 수동으로 연결하거나 여러 데이터베이스 연결을 생성하는 데에도 사용됩니다.
네 번째 유형은 모델 클래스에 정의되어 있습니다
protected $connection = array(
'dbms' => 'mysql',
'사용자 이름' => '사용자 이름',
'비밀번호' => '비밀번호',
'호스트 이름' => 'localhost',
'호스트포트' => '3306',
'데이터베이스' => 'DB 이름'
);
// 또는 다음 정의를 사용하세요
protected $connection = "mysql://username:passwd@localhost:3306/DbName";
연결 속성이 모델 클래스에 정의된 경우 모델 객체가 인스턴스화되면 데이터베이스 연결 정보는 일반적으로 현재 데이터베이스 연결 외부의 다른 데이터베이스에 있는 일부 데이터 테이블에 사용됩니다. 🎜 >
ThinkPHP는 처음에는 데이터베이스에 연결하지 않고 데이터 쿼리 작업이 있을 때만 연결합니다. 또한 시스템이 처음 모델을 실행할 때 프레임워크는 자동으로 데이터베이스에 연결하여 데이터 필드를 가져옵니다. 관련 모델 클래스 정보를 캐시에 저장합니다.
(필드 캐시 디렉터리: Runtime/Data/_fields)
ThinkPHP는 PDO 모드를 지원하므로 PDO 모드를 사용하여 데이터베이스에 연결하려면 다음 설정을 참조하세요.
설명을 위해 프로젝트 구성 파일 정의를 예로 들어 보겠습니다.
코드 복사 코드는 다음과 같습니다.배열 반환(
'DB_TYPE'=> 'pdo',
// DSN 구성은 데이터베이스마다 다릅니다. PHP 매뉴얼
의 PDO 클래스 라이브러리 섹션을 참조하세요.
'DB_DSN'=> 'mysql:host=localhost;dbname=생각',
'DB_USER'=>'루트',
'DB_PWD'=>'',
'DB_PREFIX'=>'생각_',
// 기타 프로젝트 구성 매개변수…………
);
PDO 모드를 사용하는 경우 해당 PDO 모듈이 활성화되어 있는지 확인하십시오. DB_DSN 매개 변수는 PDO 모드 연결에만 유효합니다.
더 많은 thinkPHP 관련 콘텐츠에 관심이 있는 독자는 이 사이트의 특별 주제인 "ThinkPHP 입문 튜토리얼" 및 "ThinkPHP의 일반적인 방법 요약"
이 기사가 ThinkPHP 프레임워크를 기반으로 하는 모든 사람의 PHP 프로그래밍에 도움이 되기를 바랍니다.