dot dot diary

ソフト開発での覚書や、詰まったところを書いていきたいと思います!

vim小技

vimでペーストするときインデントさせない

:set paste

元に戻す
:set nopaste

範囲コピー

1、カット(もしくはヤンク)したい範囲の開始の位置にカーソルを移動。
2、マークする(mmと入力)。
3、カット(もしくはヤンク)したい範囲の終了の位置にカーソルを移動。
4、d`m でカット、y`m でヤンク(コピー)できる。範囲は、現在のカーソルの位置から移動した先(マークの位置)まで。

行コピー

yy カーソル行をコピー(ヤンク)します。

貼り付け

p
※別ターミナルのヤンクはペーストできない

symfony

select/insert/updateの応答(symfony)

→NULL,falseをエラー扱いとする(0はエラーとしない)

  • select()

レコードが存在しない→false
レコードが存在する→連想配列でレコードが入る

  • update()

既存のレコードと同一内容を更新→0
既存のレコードと違う値を更新→1

  • insert()

成功→1
insert失敗(主キーが重複)→SQLエラー  Duplicate entry '1' for key 'PRIMARY'

  • exec()

戻り値はinteger

    • updateを実行した場合

更新対象がない→0
更新内容が一緒だった→0
更新した→更新した行数
おそらく失敗がfalseだと思われる

ログ

●アクション
$this->logMessage('aaaaaaaaaaa', 'err');

●テンプレート
echo log_message('aaaaaaaaaaa', 'err')

●ヘルパー
sfContext::getInstance()->getLogger()->err('aaaaaaaaaaa');

gitあれこれ

ワークディレクトリの内容はそのままで、直前のコミットだけを取り消す。

git reset --soft HEAD^

リモートにプッシュしたコミットを取り消す

コミットログを調べる
git log

取り消すコミットを作る
git revert logで調べたコミットID

pushする
git push リモート名 ブランチ名

ステージング上のファイルをアンステージングする

git reset HEAD ファイルパス

過去のコミットにタグを付ける

git checkout コミットハッシュ値
git tag -am "注釈" タグ名
git push origin タグ名

作業ツリーの変更を元に戻す

git checkout ファイル名
git checkout ディレクトリ名

作業ツリーとひとつ前のコミットの差分を確認する

git diff HEAD^

SQL覚え書き

忘れやすいのでSQLの覚え書き
MySQL基準で書いてます)

○データの抽出
SELECT カラム名A, カラム名B FROM テーブル名 WHERE カラム名A = ○○ AND カラム名B = ××;

○データの新規挿入
INSERT INTO テーブル名 (カラム名A, カラム名B) VALUES (○○, ××);

○データの新規挿入(同一レコードがあった場合UPDATEする)
INSERT INTO テーブル名 (カラム名A, カラム名B) VALUES (○○, ××)
ON DUPLICATE KEY UPDATE カラム名C = カラム名C + 1, カラム名D = ○○;

○データの更新
UPDATE テーブル名 SET カラム名A = ○○, カラム名B = ×× WHERE カラム名C = ○○;

○条件に合うデータを削除
DELETE FROM テーブル名 WHERE カラム名A = ○○;

○全データ削除
TRUNCATE TABLE テーブル名;

○テーブル作成
CREATE TABLE テーブル名(
カラム名A INT(11) NOT NULL AUTO_INCREMENT,
カラム名B VARCHAR(64),
カラム名C TEXT,
カラム名D VARCHAR(64),
PRIMARY KEY (カラム名A)
);

○カラム変更

ALTER TABLE テーブル名

ADD COLUMN `カラム名` 型情報 AFTER `前に位置するカラム名`;

○カラムの定義変更

ALTER TABLE テーブル名 MODIFY COLUMN `カラム名` VARCHAR(100) UNIQUE NOT NULL;

○テーブルの削除
DROP TABLE テーブル名;

○テーブルの一覧を見る
SHOW TABLES;

○テーブルの構造を見る
DESC テーブル名;

 

○テーブルを別名でコピー

create table コピー先テーブル like コピー元テーブル;
insert into コピー先テーブル select * from コピー元テーブル;

プライバシーポリシー

「個人情報の保護に関する法律」に基づき、「個人情報保護の基本方針(プライバシーポリシー)」を定め個人情報の適切な管理・保護に努めることを表明します。

個人情報保護の基本方針(プライバシーポリシー)

個人情報の利用目的をできるだけ特定し、特定された利用目的の達成に必要な範囲を超えて利用することはありません。
個人情報を偽りその他不正な手段による取得しません。取得したときは、本人に速やかに利用目的を通知又は公表します。

個人情報を利用目的の範囲内で正確かつ最新の内容に保つように努めます。
個人情報の漏洩や滅失を防ぐために、必要かつ適切な安全管理措置を講じます。
あらかじめ本人の同意を得ないで第三者に個人情報を提供することはありません。
ただし、法令に基づく場合、人の生命、身体又は財産の保護に必要な場合、公衆衛生・児童の健全育成に特に必要な場合、国等に協力する場合は除きます。

このサイトについて