이 기사의 예에는 ThinkPHP가 데이터베이스에 연결하는 몇 가지 일반적인 방법이 요약되어 있습니다. 참고할 수 있도록 모든 사람과 공유하세요. 세부 사항은 다음과 같습니다:
ThinkPHP에는 다양한 데이터베이스 작업을 캡슐화하는 추상 데이터베이스 액세스 계층이 내장되어 있습니다. 다른 데이터베이스에 대한 다른 코드 및 기본 구현을 작성하지 않고 작동하려면 공용 Db 클래스만 사용하면 됩니다. 처리를 위해 해당 데이터베이스 어댑터를 자동으로 호출합니다. 현재 데이터베이스에는 Mysql, MsSQL, PgSQL, Sqlite, Oracle, Ibase 및 PDO 지원이 포함됩니다. 애플리케이션이 데이터베이스를 사용해야 하는 경우 데이터베이스 연결 정보를 구성해야 합니다. 다중 정의 방법:
첫 번째 방법은 프로젝트 구성 파일에 정의되어 있습니다.
코드는 다음과 같습니다.
return array( 'DB_TYPE'=> 'mysql', 'DB_HOST'=> 'localhost', 'DB_NAME'=>'thinkphp', 'DB_USER'=>'root', 'DB_PWD'=>'', 'DB_PORT'=>'3306', 'DB_PREFIX'=>'think_', // 其他项目配置参数……… );
시스템은 일반적으로 프로젝트의 데이터베이스 액세스 구성이 동일하고, 시스템은 데이터베이스에 연결할 때 이 방법을 사용하므로 수동으로 연결할 필요가 없습니다.
프로젝트마다 서로 다른 데이터베이스 연결 정보를 정의할 수 있으며, 데이터베이스가 프로젝트 구성 파일과 디버깅 모두에 정의되어 있는 경우 디버깅 구성 파일(Conf/debug.php)에서 디버깅 데이터베이스 구성 정보를 정의할 수도 있습니다. 모드 구성 파일 연결 정보. 후자는 디버깅 모드에서 적용되고 전자는 배포 모드에서 적용됩니다.
관련 추천: "ThinkPHP Tutorial"
둘째, Db 클래스를 초기화할 때 매개변수를 전달하기 위해 DSN 방법을 사용합니다
코드는 다음과 같습니다:
$db_dsn = "mysql://username:passwd@localhost:3306/DbName"; $db = new Db($db_dsn);
이 방법은 주로 에서 수동으로 연결하는 데 사용됩니다. 컨트롤러 데이터베이스 또는 여러 데이터베이스 연결 생성용.
세 번째 방법은 배열을 사용하여 매개변수를 전달하는 것입니다.
코드는 다음과 같습니다.
$DSN = array( 'dbms' => 'mysql', 'username' => 'username', 'password' => 'password', 'hostname' => 'localhost', 'hostport' => '3306', 'database' => 'dbname' ); $db = new Db($DSN);
이 방법은 데이터베이스에 수동으로 연결하거나 여러 데이터베이스 연결을 생성하는 데에도 사용됩니다.
네 번째 방법은 모델 클래스에서 정의하는 것입니다
코드는 다음과 같습니다.
protected $connection = array( 'dbms' => 'mysql', 'username' => 'username', 'password' => 'password', 'hostname' => 'localhost', 'hostport' => '3306', 'database' => 'dbname' ); // 或者使用下面的定义 protected $connection = "mysql://username:passwd@localhost:3306/DbName";
모델 클래스에서 연결 속성을 정의하면 모델 객체가 인스턴스화될 때 데이터베이스 연결 정보는 다음과 같습니다. 일반적으로 현재 데이터베이스 연결 외부의 다른 데이터베이스에 있는 일부 데이터 테이블에 사용되는 데이터베이스 연결을 생성하는 데 사용됩니다.
ThinkPHP는 처음에는 데이터베이스에 연결하지 않고 데이터 쿼리 작업이 있을 때만 연결합니다. 또한 시스템이 처음으로 모델을 실행할 때 프레임워크는 관련 정보를 얻기 위해 자동으로 데이터베이스에 연결합니다. 모델 클래스의 데이터 필드 정보가 캐시됩니다.
(필드 캐시 디렉터리: Runtime/Data/_fields)
ThinkPHP는 PDO 모드를 사용하여 데이터베이스에 연결하려는 경우 아래 설정을 참조할 수 있습니다.
설명을 위해 프로젝트 구성 파일 정의를 예로 들어 보겠습니다.
코드는 다음과 같습니다.
return array( 'DB_TYPE'=> 'pdo', // 注意DSN的配置针对不同的数据库有所区别 请参考PHP手册PDO类库部分 'DB_DSN'=> 'mysql:host=localhost;dbname=think', 'DB_USER'=>'root', 'DB_PWD'=>'', 'DB_PREFIX'=>'think_', // 其他项目配置参数……… );
PDO 모드를 사용할 때 관련 PDO 모듈이 활성화되어 있는지 확인하세요. DB_DSN 매개변수는 다음에만 유효합니다. PDO 모드 연결.
위 내용은 thinkphp를 데이터베이스에 연결하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!