CodeIgniterまたはCakePHPにMS Access接続を追加するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/178860

質問

CodeIgniterまたはCakePHPで行うことを考えているデモプロジェクトにMicrosoft Accessデータベースを使用しようとしています。 Microsoft Accessを使用することの愚かさを無視すると、接続文字列がフレームワークのデータベース設定にどのように対応するかを正確に把握することができませんでした。ストレートPHPでは、次のコードを使用してAccessデータベースに接続できます。

$db_connection = odbc_connect(
  "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=\\path\\to\\db.mdb", 
  "ADODB.Connection", "", "SQL_CUR_USE_ODBC"
);

これらの文字列はCode Igniter dbの設定にどのように対応しますか?これはまったく機能していないようです:

$db['access']['hostname'] = "{Microsoft Access Driver (*.mdb)}";
$db['access']['username'] = "ADODB.Connection";
$db['access']['password'] = "";
$db['access']['database'] = "\\path\\to\\db.mdb";
$db['access']['dbdriver'] = "odbc";
$db['access']['dbprefix'] = "";
$db['access']['pconnect'] = TRUE;
$db['access']['db_debug'] = TRUE;
$db['access']['cache_on'] = FALSE;
$db['access']['cachedir'] = "";
$db['access']['char_set'] = "utf8";
$db['access']['dbcollat'] = "utf8_general_ci";
役に立ちましたか?

解決

DSNを設定して次のように変更してみてください:

$db['access']['hostname'] = "<dsn name>";
$db['access']['username'] = "";
$db['access']['password'] = "";
$db['access']['database'] = "<dsn name>";

接続文字列に対応するCodeIgniterドキュメントのセクションもあります:

http://codeigniter.com/user_guide/database/connecting.html

他のヒント

代わりにSQL Express(無料!)エンジンを使用して、MS Accessデータベースをインポート/エクスポートすることは可能でしょうか?後で感謝することができます。 :-)

もう1つのオプションはCIのネイティブDBライブラリの代わりにADOdbライブラリを使用することです。ただし、CIからActive Recordのサポートを失い、それを利用するためにCIの特定のライブラリを書き換える必要があります。アプリケーションでサポートされていないDBでCIを使用する。 Postgresの実装にバグがあったとき、私は早くそれをしなければなりませんでした。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top