FC2ブログ

従客閑雅

ほんとうは「従容閑雅」なんだそうな(^^; 東琤(落塵庵主)がサイバーな世界でストレス発散。

ヌルではまった話 

先日来バグフィックスをしている。
なかなか見つけられなかったバグがあったので防備録に収めておく。

それは、Mysqlのテーブルで、あるフィールドに初期値NULLがあったことに起因する。


で、いったいNULLとは何なのか?

「NULL」(読みはナルらしい、日本における通名はヌル)Wikiによれば、何も無いという意味と書かれてある。語源としては0を意味しているらしいが、プログラミングにおいては0とは全く異なる。データーベースMySQLでは、テーブルを作成する時にデフォルト値を設定するが、この時に、

1.なし
2.ユーザー定義
3.CURRENT TIMESTAMP
4.NULL

を選択できるようだ。
CREATE文で フィールドの初期値で not NULL と指定すれば、なしが摘要される。

今回は、フラグを格納し、それを取り出して分岐するところがバグの原因になっていたようだ。

SELECT $fieldName FROM $tableName WHERE flag='' $option

ここでフラグに何も書き込まれていなかった場合、NULLがあり空ではヒットしないのだ。
新たにデータが書き込まれていたら、空が入るのだがそうでない場合は初期値のままだった。

最初気付いた時に、CREATE文を訂正しておけば良かったのだが、phpMyAdminで初期値を修正したのが運の尽き、すっかり頭から消えていた。結構、ここにたどり着くまで時間がかかったので、記録しておく。

Null と 0 と 空 は全然違う♪というオマヌケな話。

スポンサーサイト
[ 2013/03/30 09:32 ] Apache MySQL PHP  | TB(0) | CM(0)
コメントの投稿













管理者にだけ表示を許可する
カテゴリー
プロフィール

らくじん(rakujin)とうそう

Author:らくじん(rakujin)とうそう
『変わらぬ御世こそめでたけれ!』でも、人間平坦だとついついぼやきがち。庵主はサイバー上でぼやくのが趣味。HPの容量が無くなったので、仕方なくブログに移行、ブログ版ジョーク!!
本家

月別アーカイブ
ブロとも申請フォーム
counter
2011.04.28-