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

車輪の再発明記録

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

説明
ディスクから完全なデータベーススクリプトを実行します。
共通変数
CONFIG

1 script変数にscriptlocationファイルの内容をすべて読み込めた場合
1.1 errors変数を空配列で初期化
1.2 script変数に”/\-\-.*\n/”の文字が含まれていたら空文字に置き換える
1.3 script変数を”/;[\n\r]+/”で配列に分ける(SQL文の区切りごとに)
1.4 上記の配列をforeachで回す
1.4.1 先頭と末尾の空白を削除する
1.4.2 prefix_と書かれたFROM句をCONFIG.dbprefixに変更する
1.4.3 update_data(statement)のアップデートする
1.4.4 失敗した場合
1.4.4.1 errors配列にエラー文を代入
2 errorsにエラー文が入っていた場合
2.1 errors配列をすべて結合させDBSetupIssuesエラーを発生させる
3 script変数にscriptlocationファイルの内容をすべて読み込めなかった場合
3.1 ScriptNotFoundエラーを発生させる
説明
特定のデータベース·リンクの最後のデータベースのエラーを取得する
共通変数
なし

1 mysql_error(dblink)でエラーを返す
※ C#では注意が必要
説明
mysqlのテーブルの最適化クエリを実行します。主要なデータの変更後に実行するのに便利です。
共通変数
なし

1 引数のtableをMySQLで利用できるよう安全な形にする(エスケープ)
2 update_data("optimize table " + table)を実行し値を返す
説明
テーブルには、現在Elggのデータベースにインストールされます
共通変数
CONFIG

1 tablesをstaticで変数定義
2 tablesに値が存在する場合
2.1 tablesを返す
3 “show tables like '" . CONFIG.dbprefix . "%'"でテーブルを取得する
4 tablesを空配列で初期化
5 “show tables like '" . CONFIG.dbprefix . "%'"に値がある場合
5.1 tablesに取得したテーブル名を格納
5.2 tablesを返す
6 “show tables like '" . CONFIG.dbprefix . "%'"に値がない場合
6.1 falseを返す
説明
データを削除するには、この関数を使用する
共通変数
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 削除された行数を返す
4 execute_query(query, dblink)が失敗した場合
4.1 falseを返す