PHP でMySQL からWordPress データにアクセス

詳細情報をご希望ですか?

無償トライアル:

ダウンロードへ

製品の詳細情報へ:

Wordpress ODBC Driver

Wordpress ODBC Driver を使って、ODBC 接続をサポートするあらゆるアプリケーション・ツールからWordpress データに連携。

Wordpress データに標準ODBC Driver インターフェースを使ってRDB と同感覚でアクセス - Pages、Posts、Tags、Users などに標準ODBC インターフェースで双方向連携。



PHP から標準MySQL ライブラリを介してWordPress に接続。

CData SQL Gateway とODBC Driver for WordPress を使用することで、ETL を実行したりデータをキャッシュしたりすることなく、MySQL クライアントからWordPress にアクセスできます。以下のステップに従って、PHP の標準MySQL インターフェースであるmysqliPDO_MySQL を介してWordPress データにリアルタイムで接続します。

WordPress データに接続する

必要な接続プロパティの値が未入力の場合には、データソース名(DSN)で入力します。組み込みのMicrosoft ODBC Data Source Administrator を使用し、DSN を構成できます。ドライバーのインストールの最後にアドミニストレーターが開きます。Microsoft ODBC データソースアドミニストレーターを使ってDSN を作成および設定する方法は、ヘルプドキュメントの「はじめに」を参照してください。

データに接続するには、Url を設定して認証を提供します。URL はワードプレスサイトに設定しなければなりません。そうしないと、サーバーが見つからない旨を示すエラーがスローされます。 例えば、あなたのサイトが'http://localhost/wp/wordpress' でホストされている場合、URL は'http://localhost' ではなく、'http://localhost/wp/wordpress' となるべきです。

詳細はヘルプドキュメントを参照してください。

SQL Gateway を構成する

WordPress データへの接続を、仮想MySQL データベースとして設定する方法については、「SQL Gateway Overview」を参照してください。クライアントからのMySQL リクエストをリッスンするMySQL リモートサービスを構成します。このサービスはSQL Gateway UI で設定できます。

PHP から接続する

以下の例は、オブジェクト指向インターフェースを使用してクエリを接続および実行する方法を示します。 以下のパラメータを使用して接続オブジェクトを初期化し、仮想MySQL データベースに接続します。

  • Host:サービスが実行されているリモートホストの場所を指定します。この例では、サービスがローカルマシンで実行されているため、"localhost" をリモートホスト設定に使用します。
  • Username:SQL Gateway の「ユーザー」タブで認証したユーザーのユーザー名を指定します。
  • Password:認証されたユーザーアカウントのパスワードを指定します。
  • Database Name:データベース名としてシステムDSN を指定します。
  • Port:サービスが実行されているポートを指定します。この例では3306 を指定します。

mysqli

<?php
$mysqli = new mysqli("localhost", "user", "password", "CData WordPress Sys","3306");
?>

PDO

<?php
$pdo = new PDO('mysql:host=localhost;dbname=CData WordPress Sys;port=3306', 'user', 'password');
?>

PHP からクエリする

接続が確立されると、テーブルにアクセスできます。以下のステップでは、例を説明します。

  1. テーブル(Categories)をクエリします。結果は、連想配列として$result オブジェクトに保存されます。
  2. 各行とカラムを順番に処理して、値を出力してPHP ページに表示することができます。
  3. 接続を閉じます。

mysqli

$result = $mysqli->query("SELECT Id, Name FROM Categories");
while($row = $result->fetch_assoc()) {
  foreach ($row as $k=>$v) {
    echo "$k : $v";
    echo "<br />"; 
  }
}
$mysqli->close();

PDO

$result = $pdo->query("SELECT Id, Name FROM Categories");
while($row = $result->fetch(PDO::FETCH_ASSOC)) {
  foreach ($row as $k=>$v) {
    echo "$k : $v";
    echo "<br />"; 
  }
}
$result = null;
$pdo = null;