2013-01-01から1年間の記事一覧

mysqlは、select時にgroup by で指定した列以外の値を保証しない。

無駄に悩むくらいならSQL2回に分けたほうがよほど効率的。参考サイト GROUP BYで集約されるときのソートを変えたい | MySQLのQ&A【OKWave】

cakephpのpaginateでINNER JOINをしたい

久しぶりにハマったのでメモ。paginateを使っている場合、通常のfindのようにbindModelにtypeでinnerとか指定してもできない。下記のようにする。 $this->paginate['joins'] = array( array( 'type' => 'INNER', 'table' => 'db1.table2', 'alias' => 'Table…

MySQLにてselect結果でupdateする

テーブルAのカラム同士を結合して、同じAテーブルの別カラムを更新するsql update users as u, (select id, concat(lpad(c_id, 6, '0'), '_', mobile_number) as i from users) as u2 set u.api_id = u2.i where u.id = u2.id;

ajaxのアクセスしか許可していないサイトへPHPでアクセスする方法

php

ajax通信する際、ブラウザが自動でヘッダーに下記を付与するため、 一般的には下記がヘッダーに含まれているかどうかでajaxによる通信かどうかを判断する。 X-Requested-With:XMLHttpRequest なのでphpで上記のヘッダーを偽装してしまえばajax通信でなくとも…

apache 画像系をアクセスログに出力しない設定

apacheのログ解析をするための設定 #combinedにしないとリファラとUAがアクセスログに出ない(デフォルトでcombinedになっているはず) CustomLog logs/access_log combined #画像系をアクセスログに出さない SetEnvIf Request_URI "\.(gif)|(jpg)|(png)|(css)…

ApacheLogViewerの特徴について

メリット ・キーワードなど多彩な項目で解析ができる ・日本人が作成しているので分かりやすいデメリット インストール型なので生ログをいちいちダウンロードしないといけない

phpで文字列から数値のみを抜き出す

php

Illegal mix of collations エラーについて

collate(照合順序)の異なるテーブル同士をjoinしようとしたら↓のエラーがでたIllegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8_unicode_ci,IMPLICIT) for operation '='どうやらcollateの違うテーブル同士は結合できないらしい。仕方ないの…

レプリケーションで Slave_IO_Running: No になった原因について

昨日MySQLのレプリケーション設定をして今日ステータス確認してみたら、Slave_IO_Running: Noでレプリケーションが止まっていた。エラーログには下記のように出ており、どうやらmax_allowed_packetの値が小さかったらしい。max_allowed_packet=16Mに設定 130…

ajaxでクロスドメイン接続する方法

忘れていたのでメモ。 以下の様な感じでdataType: 'jsonp' と callback=? を指定する。 (callbackの値はjqueryが勝手に付与してくれる) var url = 'http://crossdomain.jp?callback=?'; $.ajax({ type: "get", cache: false, url: url, dataType : 'jsonp', …

cakephpでHTMLの先頭に改行(空白行)が挿入される件

少しはまったのでメモ。 モデルとかでphpの終端タグ(?>)の後に改行が入っていると起きる。 終端タグの入っているソースを丸っとコピペすると起きやすいかも。注意。

CakePHPでモデル内から別モデルを呼ぶ方法

通常は下記の方法 App::import('Model', 'AnyModel'); $AnyModel = new AnyModel(); hasOneやbelongsToで関連付けされていれば下記でOK $this->AnyModel

phpのfileとfile_get_contentsとreadfileの違い

php

どれもfopenと違ってファイル内容を一括で読み込む点は同じ それ以外の違いについて fileは配列を返す(行末の改行は除去されないので注意) file_get_contentsは文字列を返す readfileは標準出力する ファイルが無い場合はWarningになるので、@fileとかにする…

HTMLのクリアと削除

HTMLをクリアしたいときはempty 削除したい場合はremove $("#test").empty(); // divは残る $("#test").remove(); // divもまるごと削除 <div id="test"> <p>今日も晴れ</p> </div>

jsのオブジェクトのループ

JSONなどのオブジェクトをループしたい場合は、for in で。 obj={"A":"あ","B":"い"} for ( a in obj ){ alert( a ); //キー名 A , B を表示 alert( obj[a] );//値 あ , い を表示 }

textareaを改行で分割したい場合

// windows,mac,linuxの改行コードに対応 var lines = $("textarea").val().split(/\r\n|\r|\n/); for (var i = 0; i < lines.length; i++) { alert(lines[i]); }

winscpの転送設定のファイルマスク

winscpの転送設定のファイルマスクを設定していたのに、気づいたら消えていてピクっときたため再度設定情報をキャプチャしておく

スマホサイトでのクリップボードへのコピーについて

jsなら以下のコマンドでクリップボードへのコピーができるが、現状IEしか動作しない。document.execCommand("copy");ZeroClipboardというjqueryフレームワークを使えばflashが動く端末で動作するが、激重い。。(P01Dでカクつくレベル)何か有効な手立てがある…

# はそのページで一回しか使われないことが確定している場合しか使ってはいけない

もう何回これで過去にはまって時間を無駄にしただろう。 今日も2時間無駄にした。HTMLで id="xx" のタグを定義して、jquery側でいくら頑張っても操作がうまくいかない。 今回はjqueryの初めて使うフレームワークだったこともあって、そっちのほうにばかり気…

PHPでの時間の比較はstrtotimeを使うこと

php

if ('6:44:39' <= '10:44:40') echo "ok";↑のプログラム、OKになると思いますか? 実はokになりませんので注意。 時間の比較はstrtotimeを使うこと。 if (strtotime('6:00:00') <= strtotime('10:00:00')) echo "ok";以下検証

sqlで日付型を条件にする際の注意

忘れていたのでメモ。timestamp,datetime型のカラムに対しての条件では、必ず hh:mm:ssまで含めること。例) select * from statement where date_col >= '2013-04-05 00:00:00' and date_col hh:mm:ss を省略すると意図したデータが取得できない。

isset()はnullもfalseを返す

php

つい忘れてしまうのでメモ。何も考えずに添字の有無チェックに使わないよう注意。 //こんな感じでチェックすればissetでfalseになっても同じnullだから良いかも $arr = array('a'=>1,'b'=>2,'c'=>null); $var = isset($arr['c']) ? $arr['c'] : null; 定期的…

kernel: Disabling IRQ #169

IRQ #169 が競合しているcat /proc/interrupts ... 169: 403 199630 IO-APIC-level yenta, eth0 ... DRBDの同期をとると下記メッセージが、/var/log/messagesに履かれ、sshの接続が極端に重くなる。kernel: Disabling IRQ #169 どうやらeth0とdrbdが競合して…

this.formで自分のフォームを参照

忘れないようにメモ(といっても絶対忘れるだろうけど)this.formを使えば自分のフォームを参照できる(ただしAタグでは無理)複数フォームがある場合など便利 <form target="win" action="test.html" method="post"> <input type="button" onclick="openwin(this.form)" value="送信" /> </form> <script> function openwin(form){ window.open("","win"); form.submit(); } </script>

utf8を使う場合のphp.ini の設定

php

デフォルトのままだとメールで文字化けするので下記設定を行う [mbstring] mbstring.language = Japanese mbstring.internal_encoding = UTF-8 mbstring.http_input = auto mbstring.http_output = UTF-8 mbstring.encoding_translation = Off mbstring.dete…

さくらのVPS、GMOクラウドのunixbenchの比較結果(2013年2月時点)

unixbench-5.1.2 の結果(全て CentOS) さくらのvps 1G:1500.2 ※さくら1Gは、apacheやらmysqlやら色々動いている環境なのであんまり参考にはならないかも さくらのvps 2G:2353.0 ※純粋に借りたての状態 GMOクラウドVPS(2G):1278.0 ※純粋に借りたての状態…