【问题标题】:PHP MySQL: INET_ATON does not save data?PHP MySQL:INET_ATON 不保存数据?
【发布时间】:2026-01-03 15:20:06
【问题描述】:

我正在尝试将 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 上做错了什么?

【问题讨论】:

标签: php mysql ip php-5.4 inet-aton


【解决方案1】:

您的问题不在于 INET_ATON 函数,而是在于 PDO(我假设它是 PDO)如何解释绑定参数。你可以这样做:

$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()
));

【讨论】:

    最近更新 更多