プログラム
最後に、アプリケーションをカスタマイズして、PEAR バッファリング メカニズムの全体的なフレームワークを包括的に説明しましょう。
SELECT クエリの結果をバッファリングするために、MySQL_Query_Cache というクラスを定義します。
最初にクラス変数を定義します:
require_once 'Cache.php';
class MySQL_Query_Cache extends Cache {
var $connection = null;
var $expires = 3600;
var $カーソル = 0;
var $result = array();
function MySQL_Query_Cache($container = 'file',
$container_options = array('cache_dir'=> '.',
'filename_prefix' => 'cache_ '), $expires = 3600)
{
$this->Cache($container, $container_options);
$this->expires = $expires
}
function _MySQL_Query_Cache() {
if (is_resource() $this->connection)) {
mysql_close($this->connection);
}
$this->_Cache();
}
}
?>
正式に開始する前に、いくつかのヘルパー関数が必要です。
function connect($hostname, $username, $password, $database) {
$this->connection = mysql_connect($hostname, $username, $password) ortrigger_error('データベース接続に失敗しました!', E_USER_ERROR);
mysql_select_db($database, $this->connection) またはtrigger_error('データベースの選択に失敗しました!', E_USER_ERROR);
}
function fetch_row() {
if ($this->cursor result)) {
return $this->result[$this->cursor++];
} else {
return false;
}
}
function num_rows() {
return sizeof($this ->result);
}
?>
バッファリングの方法を見てみましょう:
function query($query) {
if (stristr($query, 'SELECT')) {
// クエリのキャッシュタグを計算します
$cache_id = md5($query);
// クエリバッファ
$this->result = $this->get($cache_id, 'mysql_query_cache');
if ($this->result == NULL) {
// バッファ損失
$this->cursor = 0;
$this->result = array();
if (is_resource($this- > connection)) {
// 可能な限り mysql_unbuffered_query() を使用します
if (function_exists('mysql_unbuffered_query')) {$result = mysql_unbuffered_query($query, $this->connection);
} else {$result = mysql_query( $query, $this->connection);
}
// すべてのクエリ結果を取得します
while ($row = mysql_fetch_assoc($result)) {$this->result[] = $row;
}
// MySQL 結果リソースを解放します
mysql_free_result($result);
// 結果をバッファリングします
$this->save($cache_id, $this->result, $this->expires, 'mysql_query_cache') ;
}
}
} else {
// クエリ結果なし、バッファリング不要
return mysql_query($query, $this->connection);
}
}
?>
例 3: MySQL の使用クエリバッファリング
$cache = new MySQL_Query_Cache();
$cache->connect('hostname', 'username', 'password', 'database');
$cache->query('select * from table');
while ($row = $cache->fetch_row()) {
echo '
';
print_r($row);
echo '
}
?>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SecLists
SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

DVWA
Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

ドリームウィーバー CS6
ビジュアル Web 開発ツール

WebStorm Mac版
便利なJavaScript開発ツール
