我正在尝试将 IP 地址存储到我的数据库中,并且我正在使用 INET_ATON
,如下所示,
$sql = "
INSERT INTO pin (
page_id,
user_id,
pc_name,
ip,
geolocation,
created_on
)VALUES(
?,
?,
?,
?,
?,
NOW()
)";
$result = $this->connection->executeSQL($sql,array(
$this->page_id,
$this->user_id,
$this->getComputerName(),
'INET_ATON("123.136.106.104")',
$this->getGeoLocation()
));
但我无法将其转换或保存到数据库中的 ip
字段中。我得到 0
而不是数字。
我该怎么办?我对 SQL 做错了什么?
最佳答案
您的问题不在于 INET_ATON 函数 - 而是在于 PDO (我假设它是 PDO)如何解释绑定(bind)参数。您可以这样做:
$sql = "
INSERT INTO pin (
page_id,
user_id,
pc_name,
ip,
geolocation,
created_on
)VALUES(
?,
?,
INET_ATON(?),
?,
?,
NOW()
)";
并传递您的 IP:
$result = $this->connection->executeSQL($sql,array(
$this->page_id,
$this->user_id,
$this->getComputerName(),
"123.136.106.104",
$this->getGeoLocation()
));
关于PHP MySQL : INET_ATON does not save data?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19087546/