从 mySQL 表检索时邮政编码缺少前导 0

发布于 2024-11-06 12:00:10 字数 355 浏览 1 评论 0原文

我在 mySQL 表中将 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;
    }

I am storing 5 digit zip codes in mySQL tables as CHAR(5). However when a zip code with leading zeroes (ie. 02138) is retrieved from the tables, it becomes 2138. Since it is being stored in the tables as 02138 (checked with phpmyadmin), it has to do with PHP stripping off the leading 0? How can I make sure I retain the leading 0?

I'm using quite a long SQL query string using activerecords in codeigniter.

foreach($q as $row){
        /// bunch of code that adds more elements to the $row array

        $data['rows'][] = $row;
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

痴梦一场 2024-11-13 12:00:11
str_pad($zip, 5, 0, STR_PAD_LEFT);
str_pad($zip, 5, 0, STR_PAD_LEFT);
空‖城人不在 2024-11-13 12:00:11

您需要的是 MySQL ZEROFILL。将列指定为零填充。

What you need is MySQL ZEROFILL. Specify the column as zerofill.

灼疼热情 2024-11-13 12:00:11

将其显示为文本而不是数字

display it as text instead of as a number

长发绾君心 2024-11-13 12:00:11

作为Quick-N-Dirty解决方法,请参见@tandu版本。但是在这里,您应该找到问题的根源。
发生的事情很清楚——PHP 在某个地方将字符串“012345”转换为 int 12345。
所以现在你应该以某种方式找到谁这样做以及何时这样做。 var_dump 值并查看它们是字符串还是整数。

可能在框架中的某个位置您将列类型指定为数字,但它实际上在数据库中为字符。

As a quick-n-dirty workaround see @tandu version. But here you should find the root of the problem.
What happens is clear -- somewhere PHP converts string "012345" into int 12345.
So now you should somehow find, who do so and when. var_dump values and see if they string or int.

May be somewhere in your framework you specify column type as numeric, but it actually char in your DB.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文