それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

MySQLで1行ずつのINSERT文としてDump(見やすい出力

MySQLでデータベースをバックアップすると

一行のCREATE TABLEが出てくる。

1行がすごく長いので、エディタ殺し。なのでSQLを見やすく、エディタで開きやすい1行=1INSERTで出力すると便利。

そのためのオプションがコレ

 --skip-extended-insert


コレを使うと好きな場所でbeginでTransaction を開始したりcommit を追記出来るので重宝する。
あとパイプ処理など、Bashのシェルコマンドと組み合わせると割と便利。

実際の例

#>mysqldump -c --order-by-primary \
               --skip-extended-insert \
               -u<username> -p <DATABASE_NAME> <TABLE_NAME> > test.sql

一行ずつでSQLを書き出す事が出来るとデータのチェックとか楽になるかも。

2018-05-22

加筆修正

symfonyのテンプレート名前付けルールを応用する。

indexSuccess.phpの名前付けルール
/usr/share/php/symfony/view/sfView.class.php

に以下のようなコードが有る。つまり、indexSuccessの他に、

  • indexAlert
  • indexError
  • indexInput
  • indexNone

が可能ということ。それぞれ、のテンプレートに切り分けるときは

return sfView::ERROR;

などreturnする変数を変える。で、応用を考える。

class myView extends sfView {
  const HOGE = 'Hoge';
}

などと書けば、

indexHoge.php

をテンプレートとして使えるかも。

<?php
abstract class sfView
{
  /**
   * Show an alert view.
   */
  const ALERT = 'Alert';
  /**
   * Show an error view.
   */
  const ERROR = 'Error';
  /**
   * Show a form input view.
   */
  const INPUT = 'Input';
  /**
   * Skip view execution.
   */
  const NONE = 'None';
  /** 
   * Show a success view.
   */
  const SUCCESS = 'Success';
  /** 
   * Do not render the presentation.
   */
  const RENDER_NONE = 1;
  /** 
   * Render the presentation to the client.
   */

PerlのUTF8でWide character in print at

Wide character in print at

UTF-8フラグをそのまま出力しようとしてエラー
utf8フラグをハズしたらいいらしい。

#utf-8に変換して出力。
print encode('utf-8', $string);

標準出力をつかって自動判別する方法。

binmode(STDOUT, ":utf8");


ただしいやりかたはどれなんだろうね。