我能够使用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函数。我使用反复试验搞砸了一下,似乎无处可去。
有没有人有任何想法?
由于
答案 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'