我将mymap表中的5位邮政编码存储为CHAR(5)。但是当从表中检索到具有前导零(即02138)的邮政编码时,它变为2138.由于它作为02138存储在表中(使用phpmyadmin检查),它与PHP剥离前导0有关?我怎样才能确保保留前导0?
我在codeigniter中使用activerecords使用了很长的SQL查询字符串。
foreach($q as $row){
/// bunch of code that adds more elements to the $row array
$data['rows'][] = $row;
}
答案 0 :(得分:4)
str_pad($zip, 5, 0, STR_PAD_LEFT);
答案 1 :(得分:2)
你需要的是MySQL ZEROFILL。将列指定为zerofill。
答案 2 :(得分:0)
将其显示为文本而不是数字
答案 3 :(得分:0)
作为快速肮脏的解决方法,请参阅@tandu版本。但在这里你应该找到问题的根源。
会发生什么是明确的 - 某处PHP将字符串“012345”转换为int 12345。
所以现在你应该以某种方式找到,谁这样做,什么时候。 var_dump
值,看看它们是字符串还是int。
可能在您的框架中的某个位置,您将列类型指定为数字,但它实际上在您的数据库中为char。