Mee's Engineer Blog

PHPエンジニアの技術ブログ

PHPのコーディング規約に関して(PSR-2)

PHP

コーディングルールって人によってまちまちだったりして、時として「うわ!このソース読みづらっ!」ってなったりしますよね。そういう事もあり、コーディング規約に関して勉強しています。 今参考にしているのが現場でも採用されているPSR-2。 基本的なコー…

switch文で文字列を比較対象にする際の注意点

PHP

PHPのswitch文は比較を「==」で行っています。 従って、比較対象を文字列にした場合想定外の動作が起こります。 '; break; default : break; } } // 出力結果 怠惰 → 怠惰ですねぇ 0 → 怠惰ですねぇこのようになってしまうので、文字列を比較対象とする場合は…

PHPの標準クラスstdClassに関して

PHP

クラスを利用する場合、通常は利用するクラスを定義しなければいけませんが 内部定義されているstdClassを利用することもできます。 name = 'TKG'; $obj->purpose = '医療用'; // TKGは、それを医療用として利用しています。 echo $obj->name . 'は、それを'…

名前空間

PHP

通常クラス名が重複した場合、衝突しエラーが起こりますが 名前空間を設定する事によって衝突を回避することができます。 namespace Freedom; class Sample { function get_value() { return 1; } }このような場合、別ファイルからget_value()へアクセスする…

PHPによる入力値チェックや加工各種

PHP

リクエストデータを受け取った後の入力値チェックなどに便利な関数をいくつかリストアップします。trim() スペースを削除する $string = ' JAPAN '; $word = trim( $string ); echo $word; // 'JAPAN'get_magic_quotes_gpc() magic_quotes_gpcによるおせっか…

SQLServerでIdentityが設定されているテーブルをコピーする方法

SQLServerで本番環境DBのテーブルデータを、試験環境DBのテーブルにコピーする必要がありました。 その際、対象テーブルにIdenityが設定されていた場合、普通にコピーすると採番が再設定されてしまうので 下記の方法で対応しました。 table_1 → コピー元テー…

jsonを利用したデータ通信

jsonを利用したデータ通信方法です。 $.ajax({ url : "ファイルパス", //実行ファイルパス type: 'POST', //値の通信形式。指定しないとGET dataType: 'json', //サーバーから返されるデータの型 timeout: 10000, //サーバーと通信をする間隔 data:{ //送る…

LinuxでMySQLのテーブルをダンプする

MySQLのテーブルバックアップをLinuxでとりたい場合 mysqldump --extended-insert=True DB名 テーブル名 > ファイル名.sqlこれで可能となります。

IEでjQueryが正常に読み込めない時の確認

jQueryを利用したWEBサイトを作成中に、IEだけレイアウトが崩れていました。(Chromeでは正常表示)理由を調べてみると互換表示設定が原因らしかったので、HTMLファイル側に互換表示設定を強制無効化する記述をする事で解決できました。 <meta http-equiv="X-UA-Compatible" content="IE=Edge" /></meta>

alias登録をずっと登録しておく方法

aliasコマンドは日常よく使うコマンドを登録しておくと便利です。 ですがターミナル上で普通に実行しただけでは再起動した際には登録が失われてしまいます。 ずっと登録しておくには、ホーム(/homeというわけではなく、繋いでいる場所のホーム。つまり繋い…

ログインログからログイン数を集計するクエリ

会員制のシステムでは、大抵ログインログがあるかと思います。 そこからログイン数を集計するクエリはMySQLとSQL SERVERで若干違います。管理ID(id)とログイン時間(login_date)がフィールドに用意されているログインログテーブル(login_log)から アク…

charとvarcharとncharとnvarcharの違い

結構よく使うけれど、ついつい忘れがちなのが char、varchar、nchar、nvarcharの取り扱い方の違い。すごく簡単に説明すると char→文字数固定。全角非推奨。 varchar→最大文字数固定(未満でもOK)。全角非推奨。 nchar→文字数固定。全角半角関係なし。 nvarc…

テーブル数をカウントするクエリ

DBのテーブル情報を棚卸する際に、DBのテーブル数を確認したくなりました。 その際には以下の様なクエリを実行するといいです。MySQL SELECT * FROM sysobjects WHERE xtype = 'u'SQLServer SELECT COUNT(*) FROM `information_schema`.`tables` WHERE `tabl…

SQL ServerでLIMIT句を利用する

DBから指定の数だけレコードを引っ張ってくる際に、MySQLではLIMIT句を使えば簡単にできましたが SQL Serverはひと工夫が必要です。 /* テーブルAからname順に最初の10件のデータを取得する */ SELECT TOP 10 * FROM テーブルA ORDER BY name /* テーブルAか…

別テーブルのデータを引用コピーしたい場合

新しく作成したテーブルの特定のフィールドに、既に存在している別テーブルの特定フィールドのデータを引用コピーしたい、 そんな事がありました。そういう時にどんなUPDATE文を作ればいいのかというと、下記のようになります。UPDATEをかけたいテーブル → …

Linuxマシンのスペック確認

Windowsマシンのスペック確認はコンピュータを右クリックしプロパティから簡単に確認できますが Linuxマシンのスペック確認はコマンドで確認する必要があります。CPU cat /proc/cpuinfoメモリ cat /proc/meminfoHDD df -h

Linuxにインストールされているディストリビューションの確認方法

Linuxにインストールされているディストリビューションやバージョンを確認したい時ってありますよね。 そういう時は cat /etc/issueで確認ができます。

DB別ユーザーリスト表示クエリ

DBのアクセスユーザー情報を参照したい時に一覧を表示するためのクエリです。MySQL SELECT Host, User, Password FROM mysql.user; SQL Server Management Studio SELECT * FROM sys.server_principals WHERE TYPE IN ('S') AND name NOT LIKE '%##%' ORDER …

SQL Server Management StudioでExcelファイルのデータをインポートする方法

業務中30000レコード程あるデータの更新を依頼され、それがExcelファイルで渡されました。 SQL Server Management StudioではExcelファイルをコピー&ペースト(以下コピペ)でinsertできる機能が備わっているようです。①insertするテーブルのフィールド数と…

array_diff()を使って差分を取得する

PHP

配列の要素を比較し、その差分を抽出したい時にはarray_diff()が便利です。 // array array_diff ( array $array1 , array $array2 [, array $... ] ) // $array2以降と比較し、$array1にだけ存在する要素を配列で返す。 $old_hobby = array( 'プログラミン…

IE11でJavaScriptがうまく動かない時

JSで開発中、IE11にて開発者ツールを立ち上げているときちんと動作するのに開発者ツールを閉じると動作しないという不具合に直面した事があります。 理由はconsole.log()をIEが認識できずにエラーが起こっていたからでした。 同じような症状に遭遇した方は、…

技術ブログ開始

30代でIT業界へ飛び込み、エンジニアとして励む事はや2年。 他のエンジニアの方のブログ記事を参考にしながら問題解決をしてきました。 自分自身のメモだけでなく、新しくIT業界へチャレンジされるエンジニアの方へ還元する意味も込めて私も技術ブログをはじ…