InnoDBデータベースでmysqldumpする時は、single-transactionとskip-lock-tablesのオプションをつけよう

masyus-work-eyecatch-mysql

MySQLでInnoDBのデータベースをダンプしようとした時の話。

mysqldump -uhogehoge -pfugafuga -h masyus.work > dump.sql

シンプルに書くとこんな感じのコマンドになるかと思うが、実はちょっとしたLOCKの罠があったので解説してみる。検証したMySQLバージョンは5.7.26、データベースはInnoDBを使用。

もっと見る

【PHP】array_splice()で、配列の中の任意の位置に配列を挿入する方法

masyus-work-eyecatch-php

slickのような画像を一定時間毎に差し替えて表示する処理で、読み込みたい画像ファイルの設定情報を配列で下記のように持たせていたとする:

この中に、2020/07/01 00:00:00から2020/07/31 23:59:59までの期間限定で、display_z.jpgという画像を2番目に表示させるようにしたいというニーズをマーケティング側から受け取ったとする。さてどのように実装するか?

もっと見る

【CakePHP3】解説!Model配下やbootstrap.php内等、シーン別で使える万能デバッグコード一覧

masyus-work-eyecatch-cakephp3

CakePHP3でよく使うデバッグコードといえばpr()や$this->log()。だが、デバッグしたい箇所によってはこれが使えない場合もある。今回は筆者の経験上

「こういう時はこのデバッグコードを使うのが鉄板!」

と思われるデバッグコードを紹介する。検証したCakePHPのバージョンは3.6.13。

もっと見る

【CakePHP3】Migrationでrename tableする方法

masyus-work-eyecatch-cakephp3

先日CakePHP3でrename table文を発行したいニーズがあり、Migrationファイルでどう書けば良いかを調べたのでメモがてら残しておく。Phinxに定義されているメソッドを把握する必要があるため、Cakeの公式ドキュメントから具体的な解説を辿るのに少々時間がかかった。検証したCakePHPのバージョンは3.6.13、データベースはMySQL。

もっと見る