PHP에서 PDO (PHP Data Objects)는 다양한 유형의 데이터베이스를 연결하고 작동하는 가볍고 일관된 방법을 제공하는 데이터베이스 액세스 추상 레이어입니다. PDO를 사용하는 경우 먼저 PDO :: __ 구성을 통해 PDO 객체를 만들어야하므로 데이터베이스와 상호 작용할 수 있습니다. 이 기사에서는 PDO :: __ 구성 의 기본 사용법을 자세히 설명하고 데이터베이스 연결을 신속하게 시작하는 방법에 대해 설명합니다.
PDO는 개발자가 다양한 유형의 데이터베이스 시스템 (예 : MySQL, PostgreSQL, SQLite 등)간에 통합 데이터 작업을 수행 할 수있는 확장 된 PHP 라이브러리입니다. 전처리 진술을 뒷받침 할뿐만 아니라 SQL 주입 공격도 방지합니다. 현대 PHP 개발에서 데이터베이스 작업을 수행하는 것이 권장되는 방법입니다.
PDO를 통해 개발자는 각 데이터베이스 시스템에 대해 다른 연결 코드를 작성할 필요가 없으며 통합 방식으로 데이터베이스에 액세스 할 수 있습니다.
PDO :: __ 구성은 PDO 객체를 만드는 데 사용되는 PDO 클래스의 생성자입니다. 기본 구문은 다음과 같습니다.
<span><span><span class="hljs-variable">$pdo</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">PDO</span></span><span>(</span><span><span class="hljs-variable">$dsn</span></span><span>, </span><span><span class="hljs-variable">$username</span></span><span>, </span><span><span class="hljs-variable">$password</span></span><span>, </span><span><span class="hljs-variable">$options</span></span><span>);
</span></span>
$ dsn (데이터 소스 이름) : 데이터 소스 이름, 데이터베이스 유형 지정, 데이터베이스 호스트, 데이터베이스 이름 및 기타 정보.
$ username : 데이터베이스에 연결하는 데 필요한 사용자 이름입니다.
$ 비밀번호 : 데이터베이스에 연결하는 데 필요한 비밀번호입니다.
$ 옵션 : PDO의 동작을 구성하는 선택적 매개 변수 (예외 모드, 문자 세트 설정 등).
<span><span><span class="hljs-variable">$dsn</span></span><span> = </span><span><span class="hljs-string">'mysql:host=localhost;dbname=testdb;charset=utf8'</span></span><span>;
</span><span><span class="hljs-variable">$username</span></span><span> = </span><span><span class="hljs-string">'root'</span></span><span>;
</span><span><span class="hljs-variable">$password</span></span><span> = </span><span><span class="hljs-string">''</span></span><span>;
</span><span><span class="hljs-variable">$options</span></span><span> = [
PDO::</span><span><span class="hljs-variable constant_">ATTR_ERRMODE</span></span><span> => PDO::</span><span><span class="hljs-variable constant_">ERRMODE_EXCEPTION</span></span><span>, </span><span><span class="hljs-comment">// 오류 모드를 예외로 설정하십시오</span></span><span>
PDO::</span><span><span class="hljs-variable constant_">ATTR_DEFAULT_FETCH_MODE</span></span><span> => PDO::</span><span><span class="hljs-variable constant_">FETCH_ASSOC</span></span><span> </span><span><span class="hljs-comment">// 기본 데이터 수집 방법을 연관 배열로 설정하십시오</span></span><span>
];
</span><span><span class="hljs-keyword">try</span></span><span> {
</span><span><span class="hljs-variable">$pdo</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">PDO</span></span><span>(</span><span><span class="hljs-variable">$dsn</span></span><span>, </span><span><span class="hljs-variable">$username</span></span><span>, </span><span><span class="hljs-variable">$password</span></span><span>, </span><span><span class="hljs-variable">$options</span></span><span>);
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"연결이 성공적으로 연결됩니다!"</span></span><span>;
} </span><span><span class="hljs-keyword">catch</span></span><span> (PDOException </span><span><span class="hljs-variable">$e</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"연결이 실패했습니다: "</span></span><span> . </span><span><span class="hljs-variable">$e</span></span><span>-></span><span><span class="hljs-title function_ invoke__">getMessage</span></span><span>();
}
</span></span>
여기 $ dsn 에는 데이터베이스 유형 (MySQL), 데이터베이스 호스트 (LocalHost), 데이터베이스 이름 (TestDB) 및 문자 세트 (UTF8)가 포함됩니다.
pdo :: att_errmode => pdo :: errmode_exception을 사용하여 오류 모드를 예외로 설정하십시오. 이러한 방식으로 데이터베이스 연결 또는 쿼리 오류가 발생하면 PDO는 예외를 던지고 캐치를 통해 잡히고 처리 할 수 있습니다.
pdo :: attr_default_fetch_mode => pdo :: fetch_assoc 기본 데이터 수집 메소드를 연관 배열로 설정합니다.
다른 데이터베이스 시스템에는 다른 DSN 형식이 필요합니다. 다음은 몇 가지 일반적인 데이터베이스 유형 DSN 형식입니다.
<span><span><span class="hljs-variable">$dsn</span></span><span> = </span><span><span class="hljs-string">'mysql:host=localhost;dbname=testdb;charset=utf8'</span></span><span>;
</span></span>
<span><span><span class="hljs-variable">$dsn</span></span><span> = </span><span><span class="hljs-string">'pgsql:host=localhost;port=5432;dbname=testdb;'</span></span><span>;
</span></span>
<span><span><span class="hljs-variable">$dsn</span></span><span> = </span><span><span class="hljs-string">'sqlite:/path/to/database.db'</span></span><span>;
</span></span>
<span><span><span class="hljs-variable">$dsn</span></span><span> = </span><span><span class="hljs-string">'sqlsrv:Server=localhost;Database=testdb;'</span></span><span>;
</span></span>
PDO는 데이터베이스 연결이 연결될 때 구성 할 수있는 일반적으로 사용되는 일부 연결 옵션을 제공합니다.
pdo :: attr_errmode : 오류 모드를 설정합니다.
pdo :: errmode_silent : 사일런트 모드, 오류 가보고되지 않았다 (기본값).
pdo :: errmode_warning : 경고 모드, php 경고를 발행하십시오.
pdo :: errmode_exception : 예외 모드, pdoexception 예외를 던집니다.
pdo :: attr_default_fetch_mode : 기본 데이터 검색 메소드를 설정합니다.
pdo :: fetch_assoc : 연관 배열.
pdo :: fetch_obj : 객체를 반환합니다.
PDO :: Fetch_num : 숫자 인덱스 배열.
pdo :: att_emulate_prepares : 전처리 문을 시뮬레이션할지 여부를 설정합니다.
거짓 : 시뮬레이션되지 않고 데이터베이스의 기본 전처리 문을 사용하십시오.
TRUE : 전처리 명세서를 시뮬레이션합니다.
<span><span><span class="hljs-variable">$options</span></span><span> = [
PDO::</span><span><span class="hljs-variable constant_">ATTR_ERRMODE</span></span><span> => PDO::</span><span><span class="hljs-variable constant_">ERRMODE_EXCEPTION</span></span><span>,
PDO::</span><span><span class="hljs-variable constant_">ATTR_DEFAULT_FETCH_MODE</span></span><span> => PDO::</span><span><span class="hljs-variable constant_">FETCH_ASSOC</span></span><span>,
PDO::</span><span><span class="hljs-variable constant_">ATTR_EMULATE_PREPARES</span></span><span> => </span><span><span class="hljs-literal">false</span></span><span>
];
</span><span><span class="hljs-variable">$pdo</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">PDO</span></span><span>(</span><span><span class="hljs-variable">$dsn</span></span><span>, </span><span><span class="hljs-variable">$username</span></span><span>, </span><span><span class="hljs-variable">$password</span></span><span>, </span><span><span class="hljs-variable">$options</span></span><span>);
</span></span>
pdo :: __ construct를 사용하면 데이터베이스 연결이 실패하면 pdoexception 예외가 발생합니다. 따라서, 우리는 시도 ... Catch 문을 사용하여 예외를 포착하고 오류 처리를 수행 할 수 있습니다.
<span><span><span class="hljs-keyword">try</span></span><span> {
</span><span><span class="hljs-variable">$pdo</span></span><span> = </span><span><span class="hljs-keyword">new</span></span><span> </span><span><span class="hljs-title function_ invoke__">PDO</span></span><span>(</span><span><span class="hljs-variable">$dsn</span></span><span>, </span><span><span class="hljs-variable">$username</span></span><span>, </span><span><span class="hljs-variable">$password</span></span><span>, </span><span><span class="hljs-variable">$options</span></span><span>);
} </span><span><span class="hljs-keyword">catch</span></span><span> (PDOException </span><span><span class="hljs-variable">$e</span></span><span>) {
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"数据库연결이 실패했습니다: "</span></span><span> . </span><span><span class="hljs-variable">$e</span></span><span>-></span><span><span class="hljs-title function_ invoke__">getMessage</span></span><span>();
}
</span></span>
예외를 포착함으로써, 오류가 발생하면 프로그램이 직접 충돌하지 않을 수 있으며 오류 정보도 기록 할 수 있습니다.
PDO :: __ Construct는 PDO 객체를 만드는 핵심 기능입니다. 이 기능을 사용하여 데이터베이스에 대한 연결을 쉽게 구현하십시오. 데이터베이스에 연결할 때 일반적으로 PDO 동작을 구성하기 위해 DSN, 데이터베이스 사용자 이름, 비밀번호 및 일부 선택적 연결 옵션을 전달합니다.
PDO의 기본 사용을 마스터 한 후에는 다양한 데이터베이스에 유연하게 연결하고 PDO가 제공하는 풍부한 기능을 통해 데이터를 작동 할 수 있습니다. 간단한 웹 애플리케이션 또는 복잡한 엔터프라이즈 수준 시스템을 개발하든 PDO는 효율적이고 안전한 데이터베이스 운영 지원을 제공 할 수 있습니다.
관련 태그:
PDO