車輪の再発明記録 -6ページ目

車輪の再発明記録

無駄なことを再発明するブログです。

説明
データベースのデータを更新
共通変数
CONFIG, DB_QUERY_CACHE

1 dblink = get_db_link(“write”)で書き込み用のリンクを取得
2 DB_QUERY_CACHEがNULLでない場合
2.1 DB_QUERY_CACHEをクリアする
2.2 elgg_log("Query cache invalidated")でログを出力する
3 execute_query(query, dblink)が成功した場合
3.1 trueを返す
4 execute_query(query, dblink)が失敗した場合
4.1 falseを返す
説明
データベースのデータを挿入するためにこの関数を使用して、IDまたはfalseを返す
共通変数
CONFIG, DB_QUERY_CACHE

1 dblink = get_db_link(“write”)で書き込み用のリンクを取得
2 DB_QUERY_CACHEがNULLでない場合
2.1 DB_QUERY_CACHEをクリアする
3 elgg_log("Query cache invalidated")でログを出力する
4 execute_query(query, dblink)が成功した場合
4.1 mysql_insert_id()でAUTO_INCREMENTで作成されたIDを返す
5 execute_query(query, dblink)が失敗した場合
5.1 falseを返す
5.2 cached_queryを返す

説明
データベースから単一のデータ行を取得するには、この関数を使用する
共通変数
CONFIG, DB_QUERY_CACHE

1 DB_QUERY_CACHEに値がある場合(NULLでない)
1.1 cached_queryにDB_QUERY_CACHE[query]を代入
2 cached_queryがNULLでなく値が入っている場合
2.1 elgg_log(query + " results returned from cache")を実行
2.2 cached_queryが-1であった場合
2.2.1 falseを返す
2.3 cached_queryを返す
3 cached_queryがNULLであり値が入っていない場合
3.1 dblink = get_db_link(“read”)で読み取り用のリンクを取得
3.2 execute_query(query, dblink)を実行し値を取得
3.3 上記の一行目を取得
3.4 DB_QUERY_CACHEに配列が作成されている場合
3.4.1 DB_QUERY_CACHE[query]に一行目の値を代入
3.4.2 elgg_log(query + " results cached")でログを出力
3.5 callbackに値がありcallback関数が存在する場合
3.5.1 callbackで取得したデータを変更し元に戻す
3.6 取得したデータが存在する場合
3.6.1 取得したデータを返す
3.7 取得したデータが存在しない場合
3.7.1 elgg_log(query + " returned no results.")でログを出力
3.7.2 falseを返す
get_data(query, callback = "")メソッド

説明
データベースからデータを取得するには、この関数を使用する
共通変数
CONFIG, DB_QUERY_CACHE

1 DB_QUERY_CACHEに値がある場合(NULLでない)
1.1 cached_queryにDB_QUERY_CACHE[query]を代入
2 cached_queryがNULLでなく値が入っている場合
2.1 elgg_log(query + " results returned from cache")を実行
2.2 cached_queryが-1であった場合
2.2.1 空配列を返す
2.3 cached_queryを返す
3 cached_queryがNULLであり値が入っていない場合
3.1 dblink = get_db_link(“read”)で読み取り用のリンクを取得
3.2 resultarray変数を作成し配列で初期化
3.3 execute_query(query, dblink)を実行し値を取得
3.4 上記の値をwhileで回す
3.4.1 callbackに値がありcallback関数が存在する場合
3.4.1.1 callbackで取得したデータを変更し元に戻す
3.4.2 取得したデータが存在する場合
3.4.2.1 resultarrayに代入
4 resultarrayに値が一つも存在しない場合
4.1 elgg_log("DB query \"" + query + "\" returned no results.")でログを出力
4.2 falseを返す
5 DB_QUERY_CACHEに配列が作成されている場合
5.1 DB_QUERY_CACHE[query]にresultarrayを代入
5.2 elgg_log(query + " results cached")でログを出力
5.3 resultarrayを返す
execute_delayed_read_query(query, handler = "")メソッド

説明
execute_delayed_queryへの読み込みラッパー
共通変数
CONFIG, dbcalls, DB_QUERY_CACHE

1 execute_delayed_query(query, get_db_link(“read”), handler) を返す