如何在 CakePHP 2.x 中通过 INET_ATON 保存 IP 地址?

How to Save IP address By INET_ATON in CakePHP 2.x?

我想使用 MySQL INET_ATON 函数通过 CakePHP 2.x 保存 IP 地址? 我的代码在这里,但无法正常工作!

$this->loadModel('MyModel');
$data = array();
$ip = '8.8.8.8';
$data['ip'] = 'INET_ATON('.$ip.')';
$this->MyModel->save($data);

而且我不使用 $this->MyModel->query()

例如:

$this->MyModel->query("INSERT INTO `my_table` (`ip`) VALUES (INET_ATON('8.8.8.8'))")

您可以使用 ip2long 函数将 ip 转换为 int,它会像这样保存在您的 Db 中:

$this->loadModel('MyModel');
$data = array();
$ip = '8.8.8.8';
$data['MyModel']['ip'] = ip2long($ip);
$this->MyModel->save($data);

谢谢..!

使用此代码。正确工作。

$this->loadModel('MyModel');
$data = array();
$ip = '8.8.8.8';
$data['MyModel']['ip'] = DboSource::expression('INET_ATON("'.$ip.'")');
$this->MyModel->save($data);