这甚至可能吗,我这个问题的标题是否有意义?
我正在努力寻找从数据库 table
中获取所有内容的方法,但我需要运行 SQL 或 PHP 函数。
真正的简短例子是:
SELECT * FROM `table` WHERE `ip` = '$this->ip'
不过,我正在使用 INET_ATON()
来存储 IP
并使用 INET_NTOA()
来检索它。我也可以使用 PHP 的函数 ip2long()
和 long2ip()
,但我仍然不知道如何使用相同的 完成这样的事情查询?
SELECT `id`, INET_NTOA(`ip`) as `ip`, `points`
FROM `table` WHERE `ip` = INET_ATON('$this->ip')
这些都是手动定义的表格列
,以达到我需要做的事情。但是......对于这个简单的项目来说,这样做似乎没问题,但是如果我有更多列并且只有其中一些或其中一个需要一些转换怎么办?
那么我怎样才能完成类似...(我知道这是无效的)
SELECT * FROM `table` WHERE `ip` = '$this->ip` BUT INET_NTOA(`ip`) as `ip`
除了这个问题,我还想知道INET_ATON() & INET_NTOA()
只是MySQL 函数
还是SQL
函数。因为我计划重写我的项目以使用 PDO
而不是 MySQLi
并且我不确定这些功能是否有效或者我应该依赖 PHP 的内置相同功能。
最佳答案
INET_ATON() & INET_NTOA() //所有这些都已弃用!请改用 inet_pton() 或 inet_ntop() !! 原因是它们不适用于 IPv6 地址,而且更多的互联网使用 IPv6 而不是 IPv4。
它们是同名的 PHP 和 SQL 函数,将 IP 地址转换为字符串,然后再返回。
关于php - 从数据库表中选择所有 - 但在其中一列上使用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33238922/