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

車輪の再発明記録

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

execute_delayed_write_query(query, handler = "")メソッド

説明
execute_delayed_queryへの書き込みラッパー
共通変数
なし

1. execute_delayed_query(query, get_db_link(“write”), handler) を返す
execute_delayed_query(query, dblink, handler = "")メソッド

説明
すべての出力の後に実行するためのキューのクエリは、ユーザーに送信されました。
共通変数
DB_DELAYED_QUERIES

1. DB_DELAYED_QUERIESがNULLであった場合
1.1 DB_DELAYED_QUERIESに配列を作成する
2 delayed_query変数を作成し配列で初期化
3 delayed_query[“q”]にqueryを代入
4 delayed_query[“l”]にdblinkを代入
5 delayed_query[“h”]にhandlerを代入
6 DB_DELAYED_QUERIES[]にdelayed_queryを代入
7 Trueを戻す

--------------------------------------------------------------------
C#での注意点
--------------------------------------------------------------------
・特にはなし
説明
クエリを実行する
共通変数
CONFIG, dbcalls, DB_QUERY_CACHE

1 dbcallsをインクリメント
2 mysql_query(query, dblink)でクエリ文実行
3 DB_QUERY_CACHEに配列が作成されている場合
3.1 DB_QUERY_CACHE[query]に-1を代入する
4 mysql_errno(dblink)で先ほど実行したクエリにエラーあった場合
4.1 throw new DatabaseException(mysql_error(dblink) + "\n\n QUERY: " + query)
というエラーを発生させる
5 2で実行した内容を返す

--------------------------------------------------------------------
C#での注意点
--------------------------------------------------------------------
・ただ単純にSQL文を実行させる
説明
デバッグのために有用な特定のクエリを、説明しています(explain文)
共通変数
なし

1 execute_query("explain " + query, link)を実行する
2 execute_query("explain " + query, link)に値がある場合
2.1 execute_query("explain " + query, link)の結果を返す
3 execute_query("explain " + query, link)に値がない場合
3.1 Falseを返す

--------------------------------------------------------------------
C#での注意点
--------------------------------------------------------------------
・explain文を使用してSQLに対する「コスト」を算出する
説明
要求された動作モードに適したDBリンクを取得します。
共通変数
dblink

1 dblink[dblinktype]に値が存在する場合
1.1 dblink[dblinktype]を返す
2 dblink[“readwrite”]に値が存在する場合
2.1 dblink[“readwrite”]を返す
3. setup_db_connections()を実行
4. get_db_link(dblinktype)を再起

--------------------------------------------------------------------
C#での注意点
--------------------------------------------------------------------
setup_db_connections()