読者です 読者をやめる 読者になる 読者になる

CodeIgniter:クエリビルダクラス::クエリのグルーピング / 複雑な条件指定に役立つメソッド

クエリビルダクラス — CodeIgniter 3.2.0-dev ドキュメント

クエリのグルーピング
クエリのグルーピングでは、 WHERE 句を括弧で囲むことでグループを作ることができます。 これにより複雑な WHERE 句のクエリを作ることが可能です。例:

$this->db->select('*')->from('my_table')
        ->group_start()
                ->where('a', 'a')
                ->or_group_start()
                        ->where('b', 'b')
                        ->where('c', 'c')
                ->group_end()
        ->group_end()
        ->where('d', 'd')
->get();

// 次のようになります:
// SELECT * FROM (`my_table`) WHERE ( `a` = 'a' OR ( `b` = 'b' AND `c` = 'c' ) ) AND `d` = 'd'

注釈
groups は対称であることが求められます。
group_start() が group_end() と合致していることを確認してください。

$this->db->group_start()
#WHERE 句に括弧開きを追加することで
#新しいグループを作ります。
$this->db->or_group_start()
#WHERE 句に括弧開きを追加することで新しいグループを作り、
#‘OR’ を先頭に置きます。
$this->db->not_group_start()
# WHERE 句に括弧開きを追加することで新しいグループを作り、 
#‘NOT’ を先頭に置きます。
$this->db->or_not_group_start()
#WHERE 句に括弧開きを追加することで新しいグループを作り、 
#‘OR NOT’ を先頭に置きます。
$this->db->group_end()
WHERE 句に括弧閉じを追加することで現在のグループを閉じます。

mod_status

2.7 サーバステータスの監視機能



項目名


意味


備考


Srv (Child Server number - generation)


通信プロセス(スレッド)の番号 - 再起動した回数


(注1) (注2)


PID (OS process ID)


通信プロセスのプロセスID


(注3)


Acc (Number of accesses this connection / this child / this slot)


Number of accesses this connection


同一コネクション内でのアクセス数


(注1)


this child


通信プロセス(スレッド)あたりの総アクセス数


this slot


通信プロセス(スレッド)あたりの総アクセス数


M (Mode of operation)


通信プロセス(スレッド)の状態 (“通信プロセス(スレッド)の状態”を参照)


 




CPU (CPU usage, number of seconds)


CPU消費時間(秒)


(注1)


SS (Seconds since beginning of most recent request)


最新リクエストからの経過時間(秒)


(注1)


Req (Milliseconds required to process most recent request)


最新リクエストの処理時間(ミリ秒)


(注1) (注3)


Conn (Kilobytes transferred this connection)


同一コネクション内での転送量(Kバイト)


(注1)


Child (Megabytes transferred this child)


通信プロセス(スレッド)あたりの総転送量(Mバイト)


(注1)


Slot (Total megabytes transferred this slot)


通信プロセス(スレッド)あたりの総転送量(Mバイト)


(注1)


Host


クライアントまたはプロキシサーバなどのIPアドレス


(注1)


VHost


最新リクエストを受け付けたInterstage HTTP Serverのホスト名


(注1) (注4)


Request


最新リクエストの内容


(注1)

PHP::HOSTヘッダインジェクション攻撃

HOSTヘッダインジェクション攻撃
http://blog.a-way-out.net/blog/2015/11/06/host-header-injection/

⇒未検証の $_SERVER['HTTP_HOST'], $_SERVER['SERVER_NAME']は、信用してはいけない。という話。
『$_SERVER['HTTP_HOST']を使ったサーバのURLの自動判定は脆弱性と判断し廃止しました。』そうかー

wget::動的ページの静的スナップショットを丸ごと作る

# http://example.com/ のスナップショットを、リンクを辿って作る。
# 進行状況を log に残す
# あとなんか、オプション。忘れたのでそのうち。

wget --output-file=log -r -l 0 --random-wait --restrict-file-names=windows --convert-links --no-host-directories --html-extension --page-requisites http://example.com/

php::public, protected, private

オブジェクトのメンバ(メソッドやプロパティ)に対するアクセス権を定義する、phpプログラム構文上のキーワードである。

  • public: どこからでもアクセス可能なもの(メンバ)
  • var: publicと同じ。php4との互換性のために存在する
  • protected: 定義されたそのクラス自身と、継承されたクラスでアクセス可能なもの(メンバ)
  • private: 定義されたそのクラス自身でアクセス可能なもの(メンバ)

いまさらVMwareを卒業してVirtualBoxに移動する

VirtualBoxをサービスで動かす方法
仮想化関連ソフト/VirtualBoxの仮想OSをバックグラウンド(画面なし)で起動する方法・Windows編 - Windowsと暮らすqiita.com

Windows7VirtualBox】ホストOSの起動時に、仮想マシン自動起動させる方法
qiita.com


VMware Fusion での VMware Tools のアンインストールと手動インストール (2075276)
https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2075276



VMware Player から VirtualBox へ移行 – 愛しく切ない1bed
www.lanches.co.jp

ブラウザテストの自動化: SeleniumIDEどこいったん? (SeleniumBuilder)

Firefox+SeleniumIDEという構成で、ブラウザ操作の自動化テストをしてきましたが、Firefoxのバージョンアップに伴って、アドオンとしてSeleniumIDEが使えなくなった。

この方面のトレンドが全く目に入ってこなかったので、代替案について少々戸惑った。


2017年1月現在、SeleniumIDEは過去のものになっている。というトレンドをやっと把握。
2017年1月現在、SeleniumBuilderを使う。というトレンドをやっと把握。

SeleniumBuilder単体では実行できない。(記録してjson形式のファイルを作るまでが機能)
Selenium Serverをインストール・セットアップが必要。
Selenium Serverは*.jarなファイルなので、Java環境が必要。


selenium-server-3.0.1を使ったところでは、

java -jar selenium-server-standalone-3.0.1.jar -Dwebdriver.ie.driver=IEDriverServer.exe -Dwebdriver.chrome.driver=chromedriver.exe

ではなく、

java -jar selenium-server-standalone-3.0.1.jar

でサーバを実行し、SeleniumBuilder側で実行するサーバを指定する画面でドライバ名(webdriver)を指定する。
サーバとの通信時のパラメータに、使用するドライバを指定する形式に変わった模様。

www.bravi.co.jp
app.codegrid.net