MySQL, MySQLi 및 PDO의 차이점은 무엇입니까? [닫은]
MySQL, MySQLi 및 PDO 의 차이점은 무엇입니까 ?
PHP-MySQL과 함께 사용하기에 가장 적합한 것은 무엇입니까?
PHP에서 MySQL을 사용하는 세 가지 일반적인 방법이 있습니다. 이것은 일부 기능 / 차이를 설명 하는 API 선택 : PHP를 :
- (더 이상 사용되지 않음) mysql 함수 는 절차적이고 수동 이스케이프를 사용합니다.
- MySQLi 는 객체 지향 및 절차 적 버전으로 mysql 함수를 대체합니다. 준비된 진술을 지원합니다.
- PDO (PHP Data Objects)는 다른 많은 데이터베이스 중에서 MySQL을 지원하는 일반적인 데이터베이스 추상화 계층입니다. 준비된 진술과 데이터 반환 방식에 상당한 유연성을 제공합니다.
준비된 문장과 함께 PDO를 사용하는 것이 좋습니다. 잘 설계된 API이며 필요한 경우 다른 데이터베이스 ( ODBC 를 지원하는 데이터베이스 포함 ) 로보다 쉽게 이동할 수 있습니다 .
이들은 MySQL 백엔드에 액세스하는 다른 API입니다.
- MySQL은 역사적 API입니다
- mysqli는 역사적 API의 새로운 버전입니다. 더 나은 성능과 더 나은 기능 세트를 가져야합니다. 또한 API는 객체 지향적입니다.
- PDO_MySQL 은 PDO 용 MySQL입니다. PDO는 PHP에 도입되었으며 프로젝트는 모든 데이터베이스 액세스에 공통 API를 만드는 것을 목표로하므로 이론상 코드를 변경하지 않고 RDMS간에 마이그레이션 할 수 있어야합니다 (쿼리에 특정 RDBM 기능을 사용하지 않는 경우) ), 객체 지향적입니다.
따라서 생성하려는 코드 종류에 따라 다릅니다. 객체 지향 레이어 또는 일반 기능을 선호하는 경우 ...
내 조언은
- PDO
- MySQLi
- MySQL
또한 내 생각에 mysql API는 향후 릴리스에서 삭제 될 것입니다 PHP
.
3 가지 API 기능을 비교 한 표 가 있습니다. PDO 이후에 출시 된 최신 버전이므로 가능하면 언제든지 Mysqli를 사용하십시오.
mysqli 는 mysql의 향상된 버전입니다.
PDO 확장 은 PHP에서 데이터베이스에 액세스하기위한 가볍고 일관성있는 인터페이스를 정의합니다. PDO 인터페이스를 구현하는 각 데이터베이스 드라이버는 데이터베이스 별 기능을 일반 확장 기능으로 노출 할 수 있습니다.
특히 MySQLi 확장은 이전 MySQL 확장에 비해 다음과 같은 매우 유용한 이점을 제공합니다.
OOP 인터페이스 (절차 외에) 준비된 명령문 지원 트랜잭션 + 스토어드 프로 시저 지원 더 나은 구문 속도 개선 향상된 디버깅
PDO 확장
PHP Data Objects 확장은 데이터베이스 추상화 계층입니다. 특히 이것은 MySQL 인터페이스가 아닙니다. 많은 데이터베이스 엔진 (물론 MYSQL 포함)을위한 드라이버를 제공하기 때문입니다.
PDO는 데이터베이스 엔진이 변경 될 때이를 최소화하도록 코드가 변경됨을 의미하는 일관된 API를 제공하는 것을 목표로합니다. PDO를 사용할 때 코드는 일반적으로 사용중인 드라이버를 변경하여 많은 데이터베이스 엔진에서 "작동"합니다.
PDO는 데이터베이스 간 호환뿐만 아니라 MySQL 드라이버를 사용하는 동안 준비된 명령문, 저장 프로 시저 등을 지원합니다.
참고 URL : https://stackoverflow.com/questions/2190737/what-is-the-difference-between-mysql-mysqli-and-pdo
'Programming' 카테고리의 다른 글
지옥을 보호-참조 클래스를 찾을 수 없습니다 (0) | 2020.07.10 |
---|---|
C # : 추상 클래스는 인터페이스를 구현해야합니까? (0) | 2020.07.10 |
의존성 주입은 캡슐화를 희생해야합니까? (0) | 2020.07.10 |
정확한 크기의 그림을 픽셀 단위로 지정하고 저장 (0) | 2020.07.10 |
인공 신경망에 대한 입력을 정규화해야하는 이유는 무엇입니까? (0) | 2020.07.10 |