CodeIgniterまたはCakePHPにMS Access接続を追加するにはどうすればよいですか?
-
05-07-2019 - |
質問
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ドキュメントのセクションもあります:
他のヒント
代わりにSQL Express(無料!)エンジンを使用して、MS Accessデータベースをインポート/エクスポートすることは可能でしょうか?後で感謝することができます。 :-)
もう1つのオプションはCIのネイティブDBライブラリの代わりにADOdbライブラリを使用することです。ただし、CIからActive Recordのサポートを失い、それを利用するためにCIの特定のライブラリを書き換える必要があります。アプリケーションでサポートされていないDBでCIを使用する。 Postgresの実装にバグがあったとき、私は早くそれをしなければなりませんでした。
所属していません StackOverflow