sayosigureのブログ

自分用の覚え書き。ほぼPHP、極稀にJavaも書く。

MySQL 外部ファイルからSQLを実行し結果をファイル出力

MySQLに接続する前と後の2通りのやり方を記載。

MySQLに接続する前の場合

予め準備したSQLファイルのあるフォルダに移動した上で、「<」でSQLファイルを指定

cd C:\Users\user_name\Desktop\sql      // 作成したSQLのフォルダに移動
mysql -u user_name -p db_name < select.sql  // 「< 」の後にsqlファイルを指定

mysql -u user_name -p db_name < select.sql > result.txt
//  ↑「>」で実行結果をファイル出力することも可能

MySQLに接続しながらの場合

予め準備したファイルのあるフォルダに移動した上で、MySQLログイン時にリダイレクト先のみ指定し、「\.」または「source」でSQLファイルを指定

cd C:\Users\user_name\Desktop\sql      // 作成したSQLのフォルダに移動
mysql -u user_name -p db_name > result.sql  // 「>」で出力先を指定しておく

MySQL[db_name] > source insert.sql  //  source ファイル名でsqlファイルを指定
MySQL[db_name] > \. delete.sql    //  .\ ファイル名でも指定可

MySQL[db_name] > .\ select.sql 
MySQL[db_name] > \q    // 接続を切るまで出力するから漏れなく記録できるねいいね

 


盆明けにブログみたら書きかけの記事が普通に公開されてて地味に恥ずかしかった…!

PHPの開始タグと終了タグについて

  • 参考URL
  • 結論
  • 一般的な開始タグと終了タグ
  • 省略タグその1※非推奨
  • 省略タグその2
  • その他のタグについて

参考URL

結論

  • 純粋なPHPのみのコードの場合は開始タグ <?php のみが良い、終了タグ ?> は予期せぬ不具合の元なので記載しない
  • echoが省略されている<?= ?>はPHP5.4から常に有効となっている
  • 基本は上記の2パターンのみを使用、しかしXMLXHTML内では標準規格に従った方がいいことから <?php  ?>を使用する


以下は結論に至るまでのメモです。

続きを読む

CakePHP3 DB設定

DBの接続設定について書いていきます。

 

confing/app.php の Datasources の変更

'Datasources' => [
'default' => [
'className' => 'Cake\Database\Connection',
'driver' => 'Cake\Database\Driver\Mysql',
'persistent' => false,
'host' => 'localhost',
/**
* CakePHP will use the default DB port based on the driver selected
* MySQL on MAMP uses port 8889, MAMP users will want to uncomment
* the following line and set the port accordingly
*/
//'port' => 'non_standard_port_number',
'username' => 'user_name',
'password' => 'password',
'database' => 'db_name',
'encoding' => 'utf8',
'timezone' => 'Asia/Tokyo',
'flags' => [],
'cacheMetadata' => true,
'log' => false,

 

 

config/bootstrap.php にもtimezoneの記述があるので変更します

/*
* Set server timezone to UTC. You can change it to another timezone of your
* choice but using UTC makes time calculations / conversions easier.
*/
date_default_timezone_set('Asia/Tokyo');

 

localhostにアクセスしてDatabaseの部分を確認します。
ちゃんと接続できているようです!

f:id:sayosigure:20170808093004p:plain

CakePHP 3.4.12 を入れる

CakePHPを入れます。

cakephp.org

左上のCookbookかメニューのDocumentetionのBookからインストール手順を確認。
なんか…ものすごく詳細かつ丁寧に書かれていますよね…。
わざわざ私が書き起こす必要なんてあるの?と何度も思いました。
でも自分のために書きます…。

 

Composerを使うみたいですね。

getcomposer.org

私の環境はWindowsなので、DownloadからComposer-Setup.exeをDLします。
DLできたら、XAMPPのhtdocs配下にCakePHPを入れてみます。
composerのPATHが通した上で下記を実行。

cd C:\xampp\htdocs\cakephp*1


composer self-update && composer create-project --prefer-dist cakephp/app 【任意のapp名】

 キャプチャとるの忘れていたんですが、上記を実行後、パーミッションについて聞かれるのでYとこたえておきました。

 

色々できています。
f:id:sayosigure:20170805170228p:plain
よくわかってない私はこのまま localhost:port/cakephp/practice_prj に直接アクセスして動作確認してしまったのですが、どうやらcakePHPにサーバーの機能があるみたいで下記のようなコマンドで立ち上げてアクセスするのが正しいみたいです。
CakePHPのPATHを通した上で、下記を実行します。


cake server

f:id:sayosigure:20170805171316p:plain
するとURLが出ますね。(上だと http://localhost:8765 )
ここにアクセスするとCakePHPが動いていることが確認できます。

 

ほんまに動いてる…。あっという間じゃった…。

f:id:sayosigure:20170805171645p:plain
画面右下にあるケーキマークを押すと赤いバーが出てきていろんな情報が見れます。
デバッグに便利。

 

次はDB接続のための設定を書き換えていきましょう。

 

*1:cakephpフォルダは私が適当に作ったフォルダです、普通はhtdocs直下でいいと思います

CakePHPを入れる準備(phpのIntl拡張を有効にする)

前の記事で準備したXAMPP環境にCakePHPを入れたいと思います。

cakephp.org

 

と、その前に。
メニューのDocumentationのBookまたは左上のCook Bookからインストールの手順を確認。ここで気になる記述が。

XAMPP / WAMP のいずれでも、mcrypt 拡張も mbstring 拡張も初期インストール状態で 動きます。

XAMPP では intl 拡張は同梱されていますが、 php.ini の extension=php_intl.dll という行をコメントアウトして XAMPP コントロールパネルからサーバーの再起動を行う必要はあります。

 

https://book.cakephp.org/3.0/ja/installation.html

 拡張がちゃんと有効になっているか、確認が必要みたいですね。
phpinfoを確認したところ、mcrypt,mbstringは有効になっていましたが、intlは上記の引用の通り無効になっていたのでphp.iniを変更します。

extension=php_intl.dll 

先頭のセミコロンを外してコメントアウトを解除し、Apacheを再起動、再度phpinfoを確認。でました。

f:id:sayosigure:20170805163235p:plain

 

というわけでやっとCakePHPを入れる準備が整いました。

WindowsにXMPPを入れる

ローカルに開発環境を構築する際、今まではApache,PHP,PostgreSQLなどをそれぞれ単体でDLし、設定するということをしていたのですが、MySQLの環境を構築しようと調べていたらXAMPPという便利なものを知りました。

www.apachefriends.org

 

MySQLじゃなくてMariaDBですがほぼ一緒なので試しに入れてみたところ、サイトからDL→終了。はっや。
起動したらこんな画面が出てきます。

f:id:sayosigure:20170805155030p:plain

それぞれのActionsのボタンを押して起動/停止や設定の変更などが行えます。
PIDやportとかもすぐわかるし、設定ファイルもConfig押すだけで開いてくれるから便利。。。

 

Apacheを起動してアクセスしてみます。繋がった。

f:id:sayosigure:20170805160414p:plain
右上にあるPHPinfoや、phpMyAdminのリンクを押すとちゃんと情報見れるし操作もできました。(phpAdminはもちろんDBをXAMPPで起動させてからです。)

 

次はcakePHPを入れてみます。

指定した容量のファイルがほしい。

とある案件の検証でディスク容量を圧迫しなきゃいけない項目があって
どんなやねんと思いながら調べたらそんなコマンドがありました。

dd if=/dev/zero of=ファイル名 bs=ブロックサイズ count=ブロック数

参考:
http://www.server-memo.net/server/tips/test-data.html


例えば2TBのファイルを作りたいときは

dd if=/dev/zero of=2tera bs=1G count=2048

で、2teraという名前のファイルができちゃいます。

実際に検証の時は2TBのファイルを作って検証しました。
ファイルの作成が完了するまですごい時間がかかりました。。