2012-11-23 4 views
2

우리는 2.2.3으로 업그레이드하는 과정에있는 CakePHP 1.3 응용 프로그램을 가지고 있습니다. 우리 응용 프로그램의 요구 사항 중 하나는 MSSQL 데이터베이스에 별도의 응용 프로그램을 쿼리하여 일부 인증을 수행하고 사용자 데이터를 가져올 수있게하는 것입니다.CakePHP 2.2 MSSQL/PDO 대안?

PHP/PDO/MSSQL lib (우리는 이미 MySQL, sqlite 및 sqlite 2 용 PDO가 있음)를 설치하기 위해 웹 호스트를 연구하고 괴롭 히던 2 일간의 낭비 일 후에 꽤 심하게 보였습니다.

TL : DR : Linux에서 PDO MSSQL 쿼리를 수행 할 방법을 찾아야합니다. CakePHP의 개발자들 PDO으로 모든 DB 래퍼를 만들기 위해 MSSQL 호환성을 부러 :

나를 미치게 년대 것은 이것이다 :

호언 장담을 시작합니다. MSSQL 데이터베이스에 행복하게 연결되어있는 2.2 버전으로 업그레이드하려는 Linux 서버에 1.3 앱이있는 경우 PDO를 사용하는 것이 더 이상 중요하지 않음을 보장하는 것보다 더 이상 데이터베이스에 연결할 수 없습니다. 사용자의 기존 기능을 파괴하십시오.

CakePHP의 2.x에서의 문서가이 함정의 사용자에게 경고하지 마십시오, 그들이 말하는 모든 당신이 PDO를 필요로한다는 것이다.

PDO/MSSQL은 리눅스에서 동작하지 않거나 이 사람들이 앱을 업그레이드하도록 재고 CakePHP를 제공 년대 Sqlserver.php 데이터 소스에 alterantive 될 얻기의 기회를 가져야한다는 통지가 있어야 자신의 응용 프로그램이 2.2x에서 다시 작동 함

1.3에서 2.2로 포팅하는 데 1 주일의 시간을 낭비했기 때문에 나는이 바로 지금 찜질을하고 있습니다. 이제 수동으로 쿼리를 작성하고 CakePHP의 위대한 것을 무시한 것처럼 보입니다. 데이터베이스 추상화가 필요하거나 모든 작업을 다시 1.3으로 변환하고 CakePHP 최신 버전의 모든 새로운 기능을 포기해야합니다.

+0

위의 작업을 수행하는 데 일주일을 낭비하는 대신 백엔드 작성을 고려해 보셨습니까? – vanneto

+0

이것은 정확하게 지금하고있는 일입니다. 1.3 Mssql 데이터 소스를 적용하려고 시도했으나 잘 작동하지 않았습니다. – DirtyBirdNJ

답변

3

트릭은 다음과 같습니다 어떤 이유로 확장 MSSQL

사이베이스 나를 위해 잘 작동 호출되지 않습니다 들어

sudo apt-get install php5-sybase 

당신이 마이크로 소프트와 세트의 ODBC 드라이버를 설치하기 만하면 무엇
+0

php5-sybase 구성 요소를 설치하면 PHP PDOS MSSQL이 허용됩니까? – DirtyBirdNJ

+0

네, 저에게는 효과가 있습니다. http://grover.open2space.com/content/use-php-and-pdo-connect-ms-sql-server –

+0

CakePHP의 Sqlserver 데이터 소스에 약간의 수정을해야 할 것 같습니다. 그러나 이것은 제대로 작동 할 것입니다. !우리의 웹 호스트가 php5-sybase를 설치하도록하고, 그것이 작동하는지 여부를 다시보고 할 것입니다! – DirtyBirdNJ

0

odbc 연결 문자열을 올리십시오. 이 과정은 조금 까다 롭지 만 작동하며 드라이버가 안정적입니다.

그런 다음 $ dbh = new PDO ("odbc : CONNECTIONNAME", $ user, $ password)를 사용할 수 있습니다. PDO를 통해 연결합니다.

일단 정렬되면 MSSQL 데이터 소스를 계속 사용할 수 있지만 연결 문자열을 수정할 수 있다고 생각합니다.