>PHP 프레임워크 >ThinkPHP >thinkphp를 데이터베이스에 연결하는 방법

thinkphp를 데이터베이스에 연결하는 방법

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼원래의
2019-08-26 14:20:454209검색

thinkphp를 데이터베이스에 연결하는 방법

이 기사의 예에는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.