无法使用INET_NTOA回显行

时间:2011-12-30 13:31:52

标签: php mysql

我能够使用INET_ATON功能在数据库中存储IP地址,但我无法使用INET_NTOA将其转换回来。

我的SQL语句如下..

$sql="SELECT `subnet_id`, INET_NTOA(`address`), `default_gateway`, `notes`, `site_id`, `user_id`, `mask_id` FROM `subnets`";

..直接输入phpMyAdmin时有效。

然而,当尝试使用以下两种方法回显地址行时,我得到了相应的错误:

<td class="viewDataWidth"><?php echo INET_NTOA($rows['address']); ?></td>

Fatal error: Call to undefined function INET_NTOA() in 



<td class="viewDataWidth"><?php echo $rows['INET_ntoa(address)']; ?></td>

Notice: Undefined index: INET_ntoa(address)

我可以回显地址行(没有翻译),但我假设我没有正确使用INET_NTOA函数。我使用反复试验搞砸了一下,似乎无处可去。

有没有人有任何想法?

由于

1 个答案:

答案 0 :(得分:1)

更改您的sql以使用别名,例如:

$sql="SELECT `subnet_id`, INET_NTOA(`address`) AS inet, `default_gateway`, `notes`, `site_id`, `user_id`, `mask_id` FROM `subnets`";

然后您应该能够使用

获取字段
<td class="viewDataWidth"><?php echo $rows['inet']); ?></td>

你的第一次尝试没有用,因为你试图调用php函数“INET_NTOA”而不是从mysql函数中检索结果。你可以这样做,但在php中这个函数叫做'ip2long'