ノーコードでクラウド上のデータとの連携を実現。
詳細はこちら →無償トライアル:
無償トライアルへ製品の情報と無償トライアルへ:
Magento ODBC Driver は、ODBC 接続をサポートするさまざまなアプリケーションからMagento のリアルタイムデータ連携を実現するパワフルなツールです。
RDB にアクセスするときと同感覚でMagento にアクセスし、標準ODBC Driver インターフェースを通じて読み出し、書き込み、更新が可能に。
古川えりか
コンテンツスペシャリスト
CData ODBC Driver for Magento をLAMP またはWAMP スタックにドロップし、Magento に接続されたWeb アプリケーションを構築します。本記事では、PHP のビルトインODBC 機能でMagento データに接続し、クエリを実行して、結果を出力する手順を説明します。
CData ODBC Drivers は、Ubuntu、Debian、RHEL、CentOS、Fedora など、Red Hat およびDebian ベースのさまざまなシステムでサポートされています。また、いくつかライブラリやパッケージが要求されることがありますが、それらの多くはシステムにデフォルトでインストールされています。サポートされているLinux オペレーティングシステムのバージョンと必要なライブラリの詳細については、インストール済みのもの、またはWeb 上にあるヘルプドキュメントの「はじめに」の章を参照してください。
ドライバーをインストールする前に、システムにドライバーマネージャーがあることを確認してください。この記事では、広くサポートされている無料のオープンソースODBC ドライバーマネージャーであるunixODBC を使用します。
Ubuntu のようなDebian ベースのシステムでは、APT パッケージマネージャーを使用してunixODBC をインストールできます。
$ sudo apt-get install unixODBC unixODBC-dev
Red Hat Linux ベースのシステムの場合は、yum またはdnf を使用してunixODBC をインストールできます。
$ sudo yum install unixODBC unixODBC-devel
unixODBC ドライバーマネージャーは、ドライバーの情報をodbcinst.ini ファイルから、データソースの情報をodbc.ini ファイルから読み取ります。 次のコマンドをターミナルに入力することで、システムの設定ファイルの場所を指定できます。
$ odbcinst -j
コマンドの出力は、登録されたODBC ドライバーおよびODBC データソースの設定ファイルの場所を表示します。 ユーザーデータソースにアクセスできるのは、odbc.ini ファイルがホームフォルダに格納されているユーザーアカウントだけです。システムデータソースには、すべてのユーザーがアクセスできます。 以下に、このコマンドの出力例を示します。
DRIVERS............: /etc/odbcinst.ini
SYSTEM DATA SOURCES: /etc/odbc.ini
FILE DATA SOURCES..: /etc/ODBCDataSources
USER DATA SOURCES..: /home/myuser/.odbc.ini
SQLULEN Size.......:8
SQLLEN Size........:8
SQLSETPOSIROW Size.:8
標準パッケージ形式(Debian .deb パッケージ形式または.rpm ファイル形式)でドライバーをダウンロードすることができます。ファイルをダウンロードしたら、ターミナルからドライバーをインストールできます。
ドライバーインストーラーはドライバーをunixODBC に登録し、システムDSN を作成します。これは、後にODBC 接続をサポートするツールやアプリケーションで使用できます。
Ubuntu のようなDebian ベースのシステムでは、sudo またはroot で以下のコマンドを実行します。
$ dpkg -i /path/to/package.deb
Red Hat システムまたは.rpms をサポートするその他のシステムの場合は、sudo またはroot で以下のコマンドを実行します。
$ rpm -i /path/to/package.rpm
ドライバーがインストールされたら、unixODBC ドライバーマネージャーを使用し、登録されたドライバーと定義されたデータソースを一覧表示できます。
$ odbcinst -q -d
CData ODBC Driver for Magento
...
$ odbcinst -q -s
CData Magento Source
...
CData ODBC Driver for Magento をunixODBC で使用するには、ドライバーがUTF-16 を使用するように設定されていることを確認します。そのために、インストール場所(通常はcdata.odbc.magento.ini)のlib フォルダにある、ドライバー(cdata.odbc.magento.ini)のINI ファイルを以下のように編集します。
...
[Driver]
DriverManagerEncoding = UTF-16
ドライバーのインストールにより、システムDSN が事前定義されます。DSN を変更するには、システムデータソースファイル(/etc/odbc.ini)を編集し、必要な接続プロパティを定義します。さらに、$HOME/.odbc.ini での変更にルートアクセスを必要としない、ユーザー固有のDSN を作成することができます。
Magento はOAuth 1 認証標準を使用します。Magento REST API に接続するには、Magento システムにアプリを登録してOAuthClientId、OAuthClientSecret、およびCallbackURL 接続プロパティの値を取得する必要があります。 OAuth 値を取得して接続するには、ヘルプドキュメントの「はじめに」を参照してください。
また、Magento システムへのURL を提供する必要があります。URL は、Magento REST API を顧客として使用しているか管理者として使用しているかによって異なります。
Customer: Magento を顧客として使用するには、事前にMagento のホームページで顧客アカウントを作成します。これを行うには、「アカウント」->「登録」をクリックします。それからURL 接続プロパティをMagento システムのエンドポイントに設定します。
Administrator: Magento を管理者として使用するには、代わりにCustomAdminPath を設定します。この値は、「Admin」メニューの「Advanced」設定で取得できます。「System」->「Configuration」->「Advanced」->「Admin」->「Admin Base URL」を選択することでアクセスできます。
このページ上の「Use Custom Admin Path」設定がYES に設定されている場合、値は「Custom Admin Path」テキストボックス内にあります。それ以外の場合は、CustomAdminPath 接続プロパティをデフォルト値の"admin" に設定します。
[CData Magento Source]
Driver = CData ODBC Driver for Magento
Description = My Description
OAuthClientId = MyConsumerKey
OAuthClientSecret = MyConsumerSecret
CallbackURL = http://127.0.0.1:33333
Url = https://mymagentohost.com
これらの構成ファイルの使用方法については、オンラインのヘルプドキュメントを参照してください。
odbc_connect またはodbc_pconnect を呼び出して、Magento への接続を開きます。 接続を閉じるには、odbc_close もしくはodbc_close_all を使います。
$conn = odbc_connect("CData ODBC Magento Source","user","password");
接続はodbc_connect で開かれ、スクリプトが終わると終了します。odbc_pconnect メソッドで開いた接続は、スクリプトが終わっても開いたままです。これにより同じクレデンシャルであれば他のスクリプトで接続を共有することが可能です。スクリプト間で接続を共有することにより、システムリソースを節約し、クエリの実行を高速化できます。
$conn = odbc_pconnect("CData ODBC Magento Source","user","password");
...
odbc_close($conn); //persistent connection must be closed explicitly
odbc_prepare を使って、プリペアドステートメントおよびパラメータライズドクエリを作成します。
$query = odbc_prepare($conn, "SELECT * FROM Products WHERE Style = ?");
Prepared ステートメントをodbc_execute を使って実行します。
$conn = odbc_connect("CData ODBC Magento Source","user","password");
$query = odbc_prepare($conn, "SELECT * FROM Products WHERE Style = ?");
$success = odbc_execute($query, array('High Tech'));
Non-Parameterized クエリは、odbc_exec を使います。
$conn = odbc_connect("CData ODBC Magento Source","user","password");
$query = odbc_exec($conn, "SELECT Name, Price FROM Products");
odbc_fetch_array 関数の結果セット配列としてアクセスします。
$conn = odbc_connect("CData ODBC Magento data Source","user","password");
$query = odbc_exec($conn, "SELECT Name, Price FROM Products");
while($row = odbc_fetch_array($query)){
echo $row["Name"] . "\n";
}
odbc_result_all 関数で、結果セットをHTML テーブルとして表示します。
$conn = odbc_connect("CData ODBC Magento data Source","user","password");
$query = odbc_prepare($conn, "SELECT * FROM Products WHERE Style = ?");
$success = odbc_execute($query, array('High Tech'));
if($success)
odbc_result_all($query);
ドライバーがサポートしているSQL の詳細は、ヘルプドキュメントを参照してください。上のサンプルは、PHP community documentation for all ODBC functions をMagento 向けに変更したものです。