PHP MySQL: INET_ATON не сохраняет данные?

Я пытаюсь сохранить 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?

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()
));
Другие вопросы по тегам