[PHP] SQLの古いエスケープ関数は使わないように

古いコードを新しいPHPで動かすときの注意。

mysql_escape_string

PHP: mysql_escape_string – Manual
http://php.net/manual/ja/function.mysql-escape-string.php

警告
この関数は PHP 4.3.0 で非推奨になり、PHP 7.0.0 で MySQL 拡張モジュール 全体とあわせて削除されました。 MySQLi あるいは PDO_MySQL を使うべきです。詳細な情報は MySQL: API の選択 や それに関連する FAQ を参照ください。 この関数の代替として、これらが使えます。
– mysqli_escape_string()
– PDO::quote()

mysql_real_escape_string

PHP: mysql_real_escape_string – Manual
http://php.net/manual/ja/function.mysql-real-escape-string.php

警告
この拡張モジュールは PHP 5.5.0 で非推奨になり、PHP 7.0.0 で削除されました。 MySQLi あるいは PDO_MySQL を使うべきです。詳細な情報は MySQL: API の選択 や それに関連する FAQ を参照ください。 この関数の代替として、これらが使えます。
– mysqli_real_escape_string()
– PDO::quote()

参考サイト

PHP: PDO – Manual
http://php.net/manual/ja/book.pdo.php

PHP: PDO::quote – Manual
http://php.net/manual/ja/pdo.quote.php

[PHP] タイムゾーン設定は必須 (PHP 5.1.0以降)

古いコードを新しいバージョンのPHPで動かそうとしたら動かない。ログを見たらタイムゾーンが設定されていないというエラーを吐きまくっていた。

フレームワークベースの開発だと、フレームワークが良きに計らってくれるから気にする必要はないけど、スクラッチからのコーディングでは忘れずにデフォルトタイムゾーンを設定すること。もはや必須と思っておこう。

参考サイト

PHP: date_default_timezone_set – Manual
http://php.net/manual/ja/function.date-default-timezone-set.php

注意:
PHP 5.1.0 以降(日付/時刻 関数が書き直されてから)、タイムゾーンを 正しく設定せずに日付/時刻関数をコールすると E_NOTICE が発生し、またシステムの設定や TZ 環境変数を 使用すると E_WARNING が発生するようになりました。

[ソフト] AG-デスクトップレコーダー – 画面をキャプチャして動画ファイルを作成

あるウェブサイトに埋め込まれているアニメーションを別サイトに転載してほしいとの依頼あり。アニメーションは複数のグラフィックス素材をJavaScriptでオーバーレイさせて動かしている。複数のJSファイルが連携して動作しているようなので、過不足なく転載するのはちょっと手間だな。というわけで、アニメーションをキャプチャしてGIFアニメに変換してアップする方針を決める。

まずブラウザ画面を動画キャプチャ。

PC画面を動画キャプチャする高機能インストール不要フリーソフト「AGデスクトップレコーダー」 | Tipstour
http://tipstour.net/free-soft/10933

不要部分をトリミング。

MP4(MPEG-4)ビデオをトリミング/カットする方法 (Filmora超高速動画カッター)
https://www.wondershare.jp/howtoedit/trim-mp4.html

GIFアニメに変換。

MP4 GIF 変換。オンライン フリー — Convertio
https://convertio.co/ja/mp4-gif/

出来たGIFアニメを転載先ウェブサイトに埋め込んで完了。

[Vagrant] 仮想マシンの状態をboxとして保存する

まず、現在のインスタンスの状態をpackage.boxに保存する

そして、package.boxをboxに追加する

box一覧で確認

参考サイト

Vagrant 仮想マシンの状態をboxとして保存する – Qiita
http://qiita.com/jshimazu/items/3e42d1aaef8493724586

Vagrantのboxに少しだけ手を加えたものをboxとして取っておきたい – Qiita
http://qiita.com/t_cyrill/items/ef9cb2b615bfb326f79c

[ソフト] Change Key – Windows10でキーマップ変更

Windows10で使っている古いラップトップPCのスペースバーが反応しなくなったので、交換用のキーボードが届くまでWindowsキーで代用したい。キーマップを変更するソフトを探したら、以下のソフトが開発者はWindows10対応を謳っていないものの安定動作するようなので使わせてもらう。簡単操作で問題なく動作。ありがたや。

ダウンロード Windows
http://satoshi3.sakura.ne.jp/f_soft/dw_win.htm

参考サイト

【ソフトウェアレビュー】Windows10でキーボードのキーマップを変更できる『チェンジキー』|ガジェット通販サイト「ガジェッター」
http://gadget.uassist.co.jp/post/detail2181.html

「Change Key」非常駐型でフリーのキー配置変更ソフト – 窓の杜ライブラリ
http://forest.watch.impress.co.jp/library/software/changekey/

[Laravel] “Specified key was too long” エラー対処法

Homestead(MySQL 5.7.17)で開発した案件を本サーバー(MariaDB 10.1.13)にディプロイしたら以下エラー。

AppServiceProvider.phpを以下のように編集することで解決。

参考サイト

Laravel 5.4: Specified key was too long error – Laravel News
https://laravel-news.com/laravel-5-4-key-too-long-error

Database: Migrations – Laravel – The PHP Framework For Web Artisans
https://laravel.com/docs/master/migrations#creating-indexes

[Laravel] Eloquentコレクションをマージする

How to merge two eloquent collections? – Laravel.io – The Laravel Community Portal
https://laravel.io/index.php/forum/05-29-2015-how-to-merge-two-eloquent-collections

[Laravel] withErrors()でバリデーションエラー以外のメッセージを返す

laravel – How to use withErrors with Exception error messages in Laravel4? – Stack Overflow
http://stackoverflow.com/questions/18367769/how-to-use-witherrors-with-exception-error-messages-in-laravel4

[Laravel] 複数のDBにアクセスする方法

  1. config/database.phpにDB接続を複数定義
  2. クエリービルダーではDB:connection(‘DB接続’)->select(…)
  3. Eloquentではモデルクラスに$connection=’DB接続’

参考サイト

[Laravel]Laravelで別々のDB(MySQL)に接続させる方法 – Qiita
http://qiita.com/qiita-kurara/items/2e3efb4ccbb2489b05c3

Database: Getting Started – Laravel – The PHP Framework For Web Artisans
https://laravel.com/docs/5.4/database#using-multiple-database-connections

Eloquent: Getting Started – Laravel – The PHP Framework For Web Artisans
https://laravel.com/docs/5.4/eloquent#eloquent-model-conventions