## 使いかた

MySQL の接続と Memcache の接続の関連づけを mysqnd_memcache_set() で設定したら、 プラグインは透過的に、 SQL の SELECT 文を memcache へのアクセスに変換します。 そのため、このプラグインは実行されるすべての SQL 文を監視しており、 `MYSQLND_MEMCACHE_DEFAULT_REGEXP` にマッチする文がないかどうかを探します。 マッチする文が見つかれば、mysqlnd memcache プラグインはその内容をチェックします。 SELECT がアクセスするカラムが マップされているテーブルのものだけであること、 そして WHERE 句が単一キーのルックアップに限定されていることを確かめます。

この例の SQL テーブルの場合、プラグインは、 MySQL サーバーの Memcache インターフェイスを使って SELECT f1, f2, f3 WHERE id = n のような SQL クエリーの結果を取得します。

例1 基本的な例

`<?php
$mysqli = new mysqli("host", "user", "passwd", "database");
$memc = new Memcached();
$memc->addServer("host", 11211);
mysqlnd_memcache_set($mysqli, $memc);
/*
これは test テーブルへの問い合わせです。WHERE 句のキーとして
id を使い、フィールド f1、f2 そして f3 にアクセスします。
そこで、mysqlnd_memcache はこれを横取りして memcache 経由で処理します。
*/
$result = $mysqli->query("SELECT f1, f2, f3 FROM test WHERE id = 1");
while ($row = $result->fetch_row()) {
print_r($row);
}
/*
これは test テーブルへの問い合わせですが、WHERE 句に f1 を使っています。
そのため、mysqlnd_memcache はこれを横取りしません。
MySQL プロトコルを使って処理します。
*/
$mysqli->query("SELECT id FROM test WHERE f1 = 'Lady'");
while ($row = $result->fetch_row()) {
print_r($row);
}
?>`

上の例の出力は以下となります。

    array(
        [f1] => Hello
        [f2] => World
        [f3] => !
    )
    array(
        [id] => 2
    )