昔からお世話になっているフリーソフトのひとつです。
似たようなソフトをいろいろ試すこともありますが、私にはこのソフトが一番使いやすいです。
在宅プログラマーの備忘録として2005年に始めたブログです。
Excelで1件が2行ある表もめずらしくありませんよね。
その場合の合計を出すにはどうすればよいのか。
・行番号を取得するROW関数、
・割った余りを出すMOD関数
・条件分岐のIF関数
・そしてSUM関数
これらを組み合わせればできます。
例)A列の1~99行において、行番号が偶数の行だけを合計する
1 |
=SUM(IF(MOD(ROW(A1:A99),2)=0,A1:A99,0)) |
つまり、
「行番号を2で割った余りが0だったらその値を加え、そうでなければ0を加える」
という意味です。
奇数行の場合は「=0」を「=1」にするだけですね。
※上記の数式は「配列数式」になります。
数式にカーソルがある状態で「Shift + Ctrl + Enter」を押すことで数式が有効になります。
日付のフォーマットチェックです。システムによってフォーマットは異なるかと思いますが
私がよく使うのは「yyyy-mm-dd」です。
1 2 3 4 5 6 7 8 9 10 |
function check_date($caption, $value) { if($value == '') { return null; } $preg = '/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/'; if(!preg_match($preg, $value)) { return "$caption が正しくありません"; } return null; } |
正しければNULLを返します。
SQLインジェクション対策の第一歩として、
SQLの実行にはプリペアドステートメントを徹底したほうがよいでしょう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
/* DB接続 */ $db = new PDO('DSN情報', 'ユーザー名', 'パスワード'); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); /* パラメータ */ $param = array('001', 2); /* クエリ実行 */ $stmt = $this->db->prepare('select column1 from table1 where id = ? and type = ?'); try { $stmt->execute($param); } catch(PDOException $e) { /* エラー処理 割愛 */ exit(); } /* データ取得 */ $val = null; while($row = $stmt->fetch(PDO::FETCH_NUM)) { $val = $row[0]; } |
システムのアクセス数が増えてきたときに
DBアクセスがネックになることがあります。
MySQLの環境変数のうち、おもにパフォーマンス向上に重要なのは
1 2 3 |
max_connections thread_cache_size wait_timeout |
らしいですね。
特にデフォルトだとthread_cache_sizeが0だったり、wait_timeoutが長すぎたりするため
そこあたりを変更することでパフォーマンスが向上する可能性があります。
現在の環境変数の値の確認方法は、過去の記事を参照
環境変数の設定はSQLでもできますが、恒久的に設定するには
1 |
/etc/my.cnf |
に直接書き込みます。
1 2 3 4 |
[mysqld] max_connections=500 thread_cache_size=50 wait_timeout=30 |