2017-11-04 34 views
1

에 대한 내 페이지의 코드가 있습니다PHP PDO ODBC for .mdb가 ?????를 제공합니다. 아랍어 문자

<meta http-equiv="Content-Language" content="ar-lb"> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<?php 
$db = new PDO("odbc:DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=".realpath($dbName).";charset=utf-8"); 
?> 

을 때 내가 얻을 정상적인 SELECT 쿼리를 실행 ???? 아랍 문자. 많은 질문과 게시물을 읽었지만 거의 사례를 찾지 못했으며 아무도 도움을받지 못했습니다. COM을 시도했지만 클래스가 존재하지 않는다는 오류가 발생하여 php.ini에서 찾을 수 없습니다.

.mdb 테이블의 데이터를 MySQL 데이터베이스로 가져와야합니다 ...

편집 :

<meta http-equiv="Content-Language" content="ar-lb"> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
<?php 
$db_path = "example.mdb"; 
$db_path = realpath($db_path); 
$db_dir = dirname($db_path); 
$constr = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=".$db_path.";DefaultDir=".$db_dir.";"; 
$link = new COM("ADODB.Connection", NULL, CP_UTF8); 
$link->Open($constr); 
?> 
: 나는 내 문제 //////////////////////// 를 해결할 수 있었다 이것은 내가 사용하는 코드입니다

처음에는 COM이 전혀 도움이되지 않았지만 그 트릭은 COM 생성자에이 두 인수를 추가하는 것이 었습니다 ...

+0

파일을 만든 Access의 버전에 따라 UTF-8로 인코딩 될 수도 있고 그렇지 않을 수도 있습니다. 그렇지 않은 경우 UTF-8로 인코딩 될 수도 그렇지 않을 수도 있습니다. [이 페이지] (http://vietunicode.sourceforge.net/howto/convertaccessdb.html)를 검토하여 테이블의 인코딩을 변경하십시오. UTF-8이 아니라면 파일이 생성 된 시스템의 인코딩이며이를 사용할 수있는 반면 더 나은 옵션은 UTF-8로 변환하는 것입니다 (또는 테이블 자체를 이동하기 위해 Access 자체를 사용하면됩니다. ashleedawg 제안에 따라 MySQL 드라이버 구성하기) –

답변

0

char MySQL의 ODBC 드라이버 구성에서 설정 acter!

[윈도우 키] [oldwinlogo] 유형 ODBC는 입력

  • [oldwinlogo] : http://i.stack.imgur.com/T0oPO.png

  • 더블 클릭하십시오. MySQL ODBC Unicode Driver

  • 클릭 세부 사항>>

  • 적절한 Character Set을 선택하십시오.

    MySQL ODBC Driver Config

    그 문제가 해결되지 않는 경우

는, 다음은 MySQL 데이터베이스에서 데이터 유형과 관련이있을 수 있습니다. 예를 들어 BLOB은 아랍어 문자와 잘 작동하지 않는 것 같습니다. 이 bug report에 대한 자세한 정보.

+0

제 문제는 .mdb 파일에서 얻은 아랍어 값이 나타나는 것입니다. 그리고 내 MySQL 데이터베이스는 괜찮습니다. (MySQL 연결을 위해 mysqli_ 함수를 사용합니다) –

+0

실제로 적절한 솔루션은 테이블을 마이그레이션하기 위해 Access를 사용하고 OP가 요구하는 것이 아닌 MySQL ODBC 유니 코드 드라이버를 사용하는 것입니다. 그는 Access ODBC 드라이버가 작동하지 않는 이유를 묻습니다 (특히 mdb 파일이 시스템 인코딩을 사용하므로 문제 해결이 어렵 기 때문에 파일 인코딩 방법을 알지 못하므로이 질문을 거의 답할 수 없습니다). 그 사람이 [XY 문제] (https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)의 명확한 예임에 유의하십시오. OP는 실제로 아랍어 문자로 표를 마이그레이션하는 방법을 물어야합니다. MySQL에서 Access에 이르기까지. –

+0

@Erik : XY 문제 ...흥미로운 점은 그것이 어떻게 문제가 될 수 있는지를 알 수 있습니다. 공유해 주셔서 감사합니다. – ashleedawg