MySQLのNULL値はPerlでいうundef
記事通りです。
一般常識かもしれないんですが、MySQLのNULLってperlでいうundefになります。
ここで大事なのは、
空入力 ""や、()はNULLにならない
ってことです。perlのNOTは、MySQLのNULLじゃないんですね。
MySQLには
無効値の制約
http://www.y2sunlight.com/ground/?MySQL4.1%2F8.Active%20Perl%A4%C7%A4%CEMySQL%A4%CE%CD%F8%CD%D1
というのがあって、数値カラムに数値で始まらない文字列を格納しようとすると、MySQLサーバは0を格納するので、
数値カラムに""などを入力すると、0となります。
そのため、NULLと違い、ユニーク制約などがある場合、ひっかかったりします。
なので、もし空入力があった場合で、プレースホルダーを使ってNULLを入れたい場合なんかは、入力値$inputを
$input = $input ? $input : undef;
とかしてやったりしてundefにしてやらないとNULLにはなりません。
参考まで