説明
execute_delayed_queryへの書き込みラッパー
共通変数
なし
1. execute_delayed_query(query, get_db_link(“write”), handler) を返す
1. execute_delayed_query(query, get_db_link(“write”), handler) を返す
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を戻す
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で実行した内容を返す
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を返す
1 dblink[dblinktype]に値が存在する場合
1.1 dblink[dblinktype]を返す
2 dblink[“readwrite”]に値が存在する場合
2.1 dblink[“readwrite”]を返す
3. setup_db_connections()を実行
4. get_db_link(dblinktype)を再起