011:数値のゼロフィル/ゼロ埋め対象言語:JavaScript|PHP / MySQL
|
|||||||||||||||||||||
キーワード:PHP 5.0 JavaScript MySQL sprintf % d 数値 Int 文字列 String ゼロフィル ゼロ埋め LAST_INSERT_ID() INSERT | |||||||||||||||||||||
日付を扱うときの1月→01月と表示したいとか、ID管理に4567→004567にしたいとか、とにかく数値を任意の桁数で指定してゼロフィル(ゼロ埋め・ゼロパディング等)するには、JavaScriptならsliceメソッド,PHPならsprintf関数を使用します。入力は数値でも出力されるデータは文字列であることに注意しないと、MySQLなどのデータベースからデータを得るとき、特に「フィールドタイプ=数値型」で「表示=(UNSIGNED)ZEROFILL」と指定しているときによからぬエラーを生みます。 | |||||||||||||||||||||
var num = 1; var str2 = ("0" + num).slice(-2); var str4 = ("000" + num).slice(-4); //出力 // num > 1 // str2 > "01" // str4 > "0001"
$num = 123; echo $num . ":型は" . gettype($num); // 出力>123:型はinteger // 6ケタのゼロフィル $num = sprintf("%06d", $num); echo $num . ":型は" . gettype($num); // 出力>000123:型はstring // キャスティングによる文字列型→数値型変換 $num = (int) $num; echo $num . ":型は" . gettype($num); // 出力>123:型はinteger
$result_lock = mysql_query("LOCK TABLES `user` WRITE", $link) or die("テーブルロックの失敗:". mysql_error()); $sql = "INSERT INTO `user` SET `id` = ''"; $result = mysql_query($sql, $link) or die('追加できないよ:' . mysql_error()); $sql = "SELECT LAST_INSERT_ID() FROM `user`"; $result = mysql_query($sql, $link) or die('データ取得できねぇ:' . mysql_error()); $rec = mysql_fetch_array($result); $last_id = $rec['0']; $result_lock = mysql_query("UNLOCK TABLES", $link) or die("テーブルロック解除の失敗:". mysql_error()); echo $last_id; // 出力>126
$last_id = sprintf('%06d', $rec['0']); // 出力>000126 |