2012-02-09 6 views
0

アイデアはこれです:あなたが持っているどのようなアイデアMySQLの接続(インタプリタ)なしでPHPの配列でMySQLのクエリを行うにはどうすればよいですか?

SELECT * FROM ($array) WHERE code > 23 AND value = 231 

:私がする必要がどのような

<?php 
// table definition as a php array 
$array = array(
    array("code" => 0, "value" => 1), // => row1 
    array("code" => 1, "value" => 2),// => row2 
    array("code" => 2, "value" => 345),// => row3 
    array("code" => 234, "value" => 231),// => row4 
    array("code" => 23, "value" => 34),// => row5 
    array("code" => 3, "value" => 5465),// => row6 
    array("code" => 4, "value" => 34) // => row7 
); 
?> 

のようなPHPの配列と単純にMySQLのクエリを解釈するのですか? 1.知っているツール。 2.プラグイン。 3. MySQLパーサー。 4.ベスト・ウェイ。

+3

MySQLはDBMSです。だから、PHPを使って配列検索をするのがよいでしょう。 –

+0

なぜこれが必要でしょうか? MySQL独自のコマンドインタープリタは、Bisonパーサライブラリ(http://www.gnu.org/software/bison/)を使って書かれた*非常に複雑なものです - PHPで何か似たようなことをすることはできません。 –

+0

あなたは何かを書きましたか?まだですか?完全なMySQLクエリーインタプリタをコーディングするのはかなり巨大なことですが、私はこれがあなたの目的ではないと思います。 –

答えて

0

私は、SQL構文を配列にアタッチするのは変だと思っています。

このようなPHP配列の「キャッシング」は意味がありません。
データがこのような少数の行に限定されている場合は、キャッシングが全く必要ありません。
それ以外の場合は、キャッシュによってサーバーがクラッシュします。

3

MySQLインタプリタのようなものはありません。 PHP MySQLエクステンションはデータベースに接続します。これはPHPから完全に独立しています。 SQLはPHP内部ではなく、そこで処理されます。PHPの拡張機能はコードからデータベースへ、結果とステータスを戻すだけです。

PHP拡張子SQLiteを見てみましょう。これは、似たような仕事をし、ウェブスペース内のファイルで動作します。多くのジョブでは、小さなデータセットのためのMySQLの代わりに使用することができます - あなたはあなたのデータセットをPHPコードで持っているので、小さなものであることが保証されています。

SQLiteは、ほとんどのPHPインストールにバンドルされています。

編集

読んだ後、あなたはMySQLのクエリキャッシュのためにこれを使用することを、最初にMySQLのクエリキャッシュをよく読んでください。あなたが透明にしたいことをします。

これが機能しない場合は、ビジネスロジックをチェックしてください。古い結果セットをキャッシュする可能性があります。これがMySQLのクエリキャッシュが失敗するコーナーケースである場合(これらは存在する)、単にSQLのハッシュを生成し、または配列を使用してSQLハッシュを結果セットと接続することができます。 SQLを解析する必要があります。

+0

あなたは質問とコメントを読んだことがありますか?彼はクエリキャッシュを構築しています。 SQLiteを使用してMySQLデータをキャッシュすることは、どこにいてもここでは役に立ちません。それが実際にキャッシュするだけの場合、OPは[memcached](http://memcached.org/)を見ることができます。 – CodeCaster

+1

@コードキャストタイムスタンプから、OPが私が答えた後にのみキャッシュを構築するという情報を追加したことにお気づきかもしれません。コメントを読んだ後、私はあなたがコメントしてdownvotedするまで、私の答えに編集を追加しました。 **私はタイムマシンの譲渡をしていません。** –

+0

"use sqlite"は、 "PHP配列内のデータをどのように照会するのですか"に対する答えではありません。私はあなたの編集に基づいて私のダウンワードを引っ込めました。 – CodeCaster

関連する問題