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
|
|||||||||||||||||||||