2017-11-04 18 views
1

のために私は自分のページにコードを持っている:PHP PDO ODBCから.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を試みたが、私は私のMySQLデータベースに.MDBのテーブルからデータを取得する必要があるクラスが存在していなかった、と私は私のphp.iniで

それを見つけることができなかったと言っていくつかのエラーを得ました...

編集:私はこれは私が使用したコードである//////////////////////// 私の問題を解決することができました:

<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コンストラクタにこれらの2つの引数を追加するのは難しいことでした...

+0

ファイルが作成されたAccessのバージョンによっては、UTF-8でエンコードされていてもいなくてもかまいません。これがうまくいかない場合はそうではありません。あなたのテーブルの上のエンコーディングを変更するには、[このページ](http://vietunicode.sourceforge.net/howto/convertaccessdb.html)を確認します。それがUTF-8でない場合は、ファイルが作成されたシステムのエンコーディングであり、それを使用することができますが、UTF-8に変換する方が良いでしょう。あなたのMySQLドライバ) –

答えて

0

char !MySQLのODBCドライバ構成におけるアクターのセット:http://i.stack.imgur.com/T0oPO.png

  • ダブル:

    [Windowsキー] [oldwinlogo]→タイプODBC

    • [oldwinlogo]を入力します。クリックしてMySQL ODBC Unicode Driver

    • クリック詳細>>

    • 適切なCharacter Set選択してください。

    MySQL ODBC Driver Config

    それはそれは、MySQLデータベースのデータ・タイプに関連している可能性が、問題が解決しない場合。例えば、BLOBは明らかにアラビア文字でうまく動作しません。このbug reportの詳細情報

  • +0

    私の問題は、私は、.mdbファイルから取得するアラビア語の値があることを表示されていることであるを設定するには、ashleedawgによって提案を使用して?私のMySQLデータベースは問題ありません(MySQL接続にmysqli_関数を使用しています) –

    +0

    実際には、Accessを使用してテーブルを移行し、MySQL ODBC Unicodeドライバを使用するのが適切ですが、それはOPが求めているものではありません。彼はAccess ODBCドライバが動作しない理由を尋ねています(トラブルシューティングが難しい、特にmdbファイルがシステムエンコーディングを使用しているため、ファイルがどのようにエンコードされているかわからないため、この質問はほとんど答えることができません)。彼は[XY問題](https://meta.stackexchange.com/questions/66377/what-is-the-xy-problem)の明確な例であることに注意してください。OPは実際にアラビア文字を使ってテーブルを移行する方法を尋ねるべきですアクセスからMySQLへ。 –

    +0

    @Erik:XY問題...興味深い、私はそれが問題になる可能性がある方法を見ることができます。共有してくれてありがとう。 – ashleedawg

    関連する問題