2台目インストールパス
http://www.office.com/myaccount/
技術関連
http://www.office.com/myaccount/
こんにちは!
ファイルの文字コード確認
unknown-8bit = shift-JIS
mac
file --mime
linux
file -i
ls -la
ls -lat | head -10
ls -l | wc -l
find . -type f|wc -l
less [file_name]
less test.txt
vi [file_name]
vi test.txt
vim [file_name]
vim test.txt
tail -f [file_name]
tail -f test.txt
history
history | tail -20
history | grep [キーワード]
history | grep git
sudo chmod [権限] -R [ディレクトリ名]
sudo chmod 777 -R /srv/project
find [ディレクトリ] -name ["*.拡張子"]
find / -name [ディレクトリ名] -type d
linuxコマンドだと思っている方もいるかも、、、
エンジニア最初の頃は、気にもしなかった(*´・ω・。)σ
phpの設定ファイルを探す。
設定ファイルの読み込みパスがわかる。
ただ、htaccessやuser.yamlで設定している場合もあるので注意
php --ini
Configuration File (php.ini) Path: /etc
Loaded Configuration File: /etc/php.ini
Scan for additional .ini files in: (none)
Additional .ini files parsed: (none)
phpコマンドというのかな!?
/etc/にあるのが分かります。
【comma-separated values】の略称
カンマ区切りのデータ及びテキストファイル
推測:機械が判別し易いように、項目毎にカンマ区切りされている。
仕様例:マスタ登録の機能でアップロードする際に使用される。
余談:画面からのマスタ登録の機能開発は、費用が高くなる為、費用が抑えられる一括アップロードでマスタ登録を実装するシステムもある。
システムのマスタ登録の際に、使用できる技術
正規表現で、置換しダブルクォーテーションやシンブルクォーテーションで囲んだりして作成する。
今回は、私がよく使っているサクラエディタで紹介します。
基本的には、データベースで取得したデータや、Excelのデータで作ると思います。
データ出来たら、「Ctr + r」もしくは、メニューの「検索」から「置換」の選択
置換前:(.*)\r\n
置換後:"\1",\r\n
「すべて置換」を押したら完成
function zipFormat($zipNumber) {
$result = '〒 '. preg_replace("/(\d{3})(\d{4})/", "$1-$2", $zipNumber);
return $result;
}
function phoneFormat($phoneNumber) {
$result = preg_replace("/(\d{3})(\d{3})(\d{4})/", "$1-$2-$3", $phoneNumber);
return $result;
}
軽量で速度重視のフレームワーク
メソッドの命名規則は、、、
function get_user_id()
全部「小文字」で長ければ、「アンダースコア」で命名
基本キャメルケースだったから、違和感が(;・∀・)
configファイルで設定
project/application/config/config.php
$config['log_threshold'] = [1,2];
logsの権限設定
ターミナルでコマンド
sudo chmod 777 project/application/logs
sudo chmod 777 project/application/logs
デフォルトのログファイルは、こちら「project/application/logs/」(^_-)-☆
変数・配列・実行クエリ
// 変数のデバック
log_message('debug', $user_id);
// 行番号追加
log_message('debug', 'line: '.__LINE__.' '.$user_id);
// 配列のデバック
log_message('debug', print_r($user_ids, true));
// 最終の実行クエリを表示
log_message('debug', $this->db->last_query());
配列のデバックの「print_r()メソッド」は、PHPのメソッドで第二引数にtrueを設定すると配列を表示してくれる(^_-)-☆
実行クエリの「last_query()」は、 CodeIgniterのヘルパーメソッド(^_^)/
デフォルトのエラーページ
show_404();
INSERTしたIDの取得
$this->db->insert_id();
INSERTかUPDATEした行数取得
$this->db->affected_rows();
まとめてINSERT
1レコードずつ登録するより効率的(^_-)-☆
// レコード作成 $recode = [ ['name' => 'hosoda', 'age' => 28], ['name' => 'houhashi', 'age' => 35], ]; // ユーザーテーブルへ登録 $this->db->insert_batch('user', $recode);
ララベラー
public function rules()
{
return [
’name’ => ‘required|max:255’,
’id’ => ‘required|max:255|unique:users,id,NULL,id,deleted_at,NULL’
];
}
整数値判定:…-1, 0, 1…
範囲:-2147483648~+2147483647
上記2点を検証する。
integerを「min, max, between」を掛け合わせる事で、数値として検証してくれる。
ModelのソフトデリートがValidationで効かない為、考えた結果
‘id’ => ‘required|max:255|unique:users,id,NULL,id,deleted_at,NULL’
※今回編集画面の実装が無かった為、第3第4引数はIDのNULL除外を入れて対応
日本語を使用する際は、文字コードを「utf8-general-ci」へ設定しましょう。
XAMPPのPHPMyadmin?初期値が文字化けするのになっているΣ(・ω・ノ)ノ
ターミナルで実行するコマンド
STGサーバーと本番サーバーは、バッチで自動バックアップしている会社さんは多いんですけど、開発環境は、バックアップしていない会社もありますので一週間に一回ぐらい自分でバックアップしておきましょう(^_-)-☆
Windowsコマンドプロンプトでの区切り文字は「\」です。
mysqldump -u ユーザー名@ホスト名 -p -h ホスト名 データベース名 < 保存場所/ファイル名
mysqldump -u ユーザー名@ホスト名 -p -h ホスト名 データベース名 テーブル名 < 保存場所/ファイル名
mysql -u ユーザー名@ホスト名 -p -h ホスト名 データベース名 テーブル名 テーブル名 < 保存場所/ファイル名
mysql -u ユーザー名@ホスト名 -p -h ホスト名 データベース名 < 保存場所/読込みファイル名
SQLの基本操作
※全テーブル削除は大変危険な為、コマンドはエディタで作成してから使いましょう。
DROP TABLE
DROP TABLE テーブル名, テーブル名
INSERT
INSERT INTO User (name, age) VALUE ('kenshi', 30);
BULK INSERT
BULK INSERT User VALUES ('sato', 32), ('kenshi', 30), ('yoshi', 24) ;
今回は、データ新規登録時の実行速度を検証する。
CMDからMySQLを起動し、SQL文を直接実行
SQL文を記述したファイルをCMDから実行
マスタ系10000件(9項目、ID,更新日,作成日…etc)で検証
登録方法 | CMD | ファイル読込み |
---|---|---|
INSERT | 20分 | 16分 |
BULK INSERT | 2分 | 5秒 |
※CMDは、Windowsコマンドプロンプトから、MySQLを起動しQueryをペーストし実行
BULK INSERTをファイルに記述し、MySQLへ流し込む方法が早いことがわかった。
2018/12時点
MySQLのプレースホルダの上限が「65535」個となっている。
7項目の10000データをPHPよりインサートした際に、出現したエラー
良い解決策が見つからず、1000行単位で分割し登録する方法にした。
タイトルは気にしないでくれ!!
テストデータ作成している時に使う事がある。
・サンプルデータを削除
・テストデータを作成したり削除したりする時
ALTER TABLE `tablename` auto_increment = 1;
1を変更して1000にして、開発環境とSTGでIDを意図的に被らせないで作ったりできます。
これね!ミスったデータ消すのに本当面倒ですよね、、、
一旦外部キーを無効化
SET FOREIGN_KEY_CHECKS = 0
削除した後に戻す。
SET FOREIGN_KEY_CHECKS = 1
以上٩(•̤̀ᵕ•̤́๑)ᵒᵏᵎᵎᵎᵎ
テーブル定義の文字コード変更
ALTER TABLE 「テーブル名」 CHARSET = utf8mb4;
既存のカラムの文字コード変更
ALTER TABLE 「テーブル名」 CONVERT TO CHARSET utf8mb4