2010-06-20 3 views
1

가능한 중복 : 함수를 통해 DB에 액세스하는 것은 개체, 차이점입니까?


PHP PDO vs normal mysql_connect

그래서 내 응용 프로그램에서 나는 함수 이름 db_connect를 통해 데이터베이스를 액세스(); 간단히 말해서, 그것은 필요한 로그인 정보를 제공하고 mysql_connect와 mysql_select_db를 통해 데이터베이스 연결을 열었다.

이제 작업 중이므로 수석 프로그래머가 PDO를 사용하고 있음을 발견했습니다. 공상. 그러나, 나는 사용했던 것과 같은 것의 객체 지향 버전과 다소 비슷하게 보입니다.

그렇다면 필자가 사용하던 방식과 데이터베이스에 자동으로 연결되는 생성자를 사용하여 클래스 "db"를 작성하는 것의 차이점은 무엇입니까?

두 경우 모두 db/create 개체에 새로운 개체를 만들어야합니다. 두 개체 모두 한 줄을 차지합니다.

데이터베이스 연결을 추상화하는 멋진 라이브러리입니까?

내가 생각할 수있는 유일한 방법 "() db_close"나는 코드하지 않았을 의미 OO 버전 소멸자, ...

나를 에듀 - 엄마가 - 나 타 거기에 있다는 것입니다 ! (Please'm)

답변

4

데이터베이스 라이브러리가 기능적으로나 객체 지향적인지 여부는 그다지 관련이 없지만 PDO는 매우 현대적이며 평범한 것보다 많은 장점을 가지고 있습니다. mysql_connect() 및 가장 중요한 것은 SQL을 만드는 매개 변수화 된 쿼리입니다 주사는 불가능합니다.

또한 PDO는 a whole lot more database platforms을 지원합니다.

아키텍처 관점에서 OOP 접근법은 의미가 있습니다. 단지 장식 그 이상입니다. 데이터베이스 연결 인 PDO 개체를 만듭니다. 다중 객체 = 다중 연결. 결과 집합을 객체로 래핑 - 모든 함수를 제공하여 행을 가져오고, 건너 뛰고, 되감기하는 등의 작업도 매우 논리적입니다.

새로운 프로젝트를위한 데이터베이스 래퍼를 선택한다면 분명히 mysql_*() 이상의 PDO로 갈 것입니다.

+0

당신의 생각에 감사드립니다, Pekka :) –

+0

+1 PDO가 분명히 방법입니다. mysql _ *()에 비해 많은 학습 곡선이 있지만, 매개 변수가없는 쿼리가 있으면 그만한 가치가 있습니다. –

관련 문제