PHP Laravelで、SQLite3からMySQLへDB変更 日付フォーマットでエラー

今、はやわかりのグラフ表示ツールをLaravelで作成しています。

これができれば、グラフ表示ツールのクラウド化も可能になるからです。

 

グラフ表示の部分とWindowsクライアントツールからAPIでたたく部分を大方作成でき、後は認証部分とかを作っていこうかと考えているところです。

 

なお、グラフ表示については、前に作成したように、Googleの仕組みを踏襲しました。

節電モニター

節電モニター

 

 

最初、LaravelでSQLite3をデータベースにしていたのですが、データが大量になってくる可能性があるので、MySQLへ変更することにしました。

.envファイルの内容を変更すればデータベースの変更ができるはずです。

 

ところが、いざ変更してみると、以下のように日付形式のカラムに関するエラーが出るようになりました。

 

[2017-10-15 06:40:34] local.ERROR: SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '10/15/2017 00:02:00' for column 'dt' at row 1 (SQL: insert into 〜省略〜, PDOException(code: 22007): SQLSTATE[22007]: Invalid datetime format: 1292 Incorrect datetime value: '10/15/2017 00:02:00' for column 'dt' at row 1 at /home/ubuntu/workspace/owl_energy/vendor/laravel/framework/src/Illuminate/Database/Connection.php:458

 

php artisanで作成したテーブルの日付形式のカラム(ここでは"dt")に対して、

SQLite3のデータベース無いのデータはMM/dd/yyyy 形式ですが、アプリケーションからの読み書きはyyyy-MM-dd形式でも認識してくれました。ところが、MySQLに対してはそれは通用しなかったようです。

従って、日付形式を指定することでエラーを回避することができました。

 

Laravelでアプリケーション作成する際に参考にしているのは

 

 これです。KindleでUnlimitedであれば読み放題です。

これを何度も読み返しつつ+ググって、基本的なPHPアプリケーションの作成ができるようになりました。とてもオススメです。

 

他にもLaravelの参考書は以下のものがあります。

 PHP初めてのシリーズは好評のようです。

 

 

PHPフレームワーク Laravel入門

PHPフレームワーク Laravel入門

 
Laravelエキスパート養成読本[モダンな開発を実現するPHPフレームワーク!] (Software Design plus)

Laravelエキスパート養成読本[モダンな開発を実現するPHPフレームワーク!] (Software Design plus)

 
Laravel リファレンス[Ver.5.1 LTS 対応] Web職人好みの新世代PHPフレームワーク

Laravel リファレンス[Ver.5.1 LTS 対応] Web職人好みの新世代PHPフレームワーク

 
Laravel: Up and Running: A Framework for Building Modern PHP Apps

Laravel: Up and Running: A Framework for Building Modern PHP Apps