fuelphp でのデータベース作成時zerofillについて

61 views
Skip to first unread message

Ryosuke Yoshinari

unread,
Jul 11, 2016, 2:53:05 AM7/11/16
to fuelphp.jp
お世話になっております。
fuelphp の DBUtil:*create_table 時に
zerofill を使ったデータベースを作成したいと思っています。

銀行の口座番号などのように、0から始まるデータを格納したい、また
取り出したいのですが、
        \DBUtil::create_table('bankaccounts', array(
            'number' => array('constraint' => 7, 'type' => 'int', 'unsigned' => true , 'zerofill' => true, 'null' => true),

のようなことができずに困っております。


            'number' => array('constraint' => 7, 'type' => 'varchar', 'unsigned' => true , 'zerofill' => true, 'null' => true),

などのように、varcharで行おうとすると、
表示するときに 005 のデータが
5.00としてデータベースに登録されてしまい、おかしくなってしまいます。

よろしくお願いします。

ご教示願えれば幸いです。

kit.t

unread,
Jul 11, 2016, 4:23:01 AM7/11/16
to fuelphp.jp
kit.tです。

fuelphp の DBUtil:*create_table 時に
zerofill を使ったデータベースを作成したいと思っています。

zerofillはサポートしていないようなのでオプションとして使用できません。
DB::query('CREATE TABLE~')を使用してください。


銀行の口座番号などのように、0から始まるデータを格納したい、また
取り出したいのですが、

int型では毎回PHP側でprintfなどでフォーマットする必要があると思います。
PHPの数値型がサポートしていないためか、Orm\Modelに格納されるint zerofillのデータは0が取れてしまいました。

varcharで扱う場合、varchar(7) zerofillというのはできないので、printfなどでフォーマットします。


表示するときに 005 のデータが
5.00としてデータベースに登録されてしまい、おかしくなってしまいます。

これは再現しなかったので、別の原因があると思います。

Ryosuke Yoshinari

unread,
Jul 11, 2016, 11:29:40 PM7/11/16
to fuelphp.jp
 
ありがとうございました。
自分で実装する方法でやってみることにします。 
Reply all
Reply to author
Forward
0 new messages