我有一个ip
与表VARBINARY
字段:ip_start
和ip_end
现在我有一个问题,
$ip=('2001:255:ffff:ffff:ffff:ffff:ffff:ffff');
$binary=unpack("A16",inet_pton($ip));
var_dump($binary);
现在,如何存储$binary_start
并$binary_end
以ip
表?我是否需要包装任何数据(例如bin2hex)?
"INSERT INTO `ip_table` (`id`, `binary_start`, `binary_end`) VALUES
(1,".$binary_start.",".$binary_end.");"
MySQL具有BINARY
/VARBINARY
类型,可用于直接存储二进制数据,而无需将其计算为十六进制表示形式。
CREATE TABLE `%s` (
`binary_start` BINARY( 20 ) NOT NULL,
`binary_end` VARBINARY( 20 ) NOT NULL,
);
如果使用准备好的语句并传递值而不将它们连接到字符串,则二进制数据将“按原样”插入。
/** @var $database \PDO */
$stmt = $database->prepare( 'INSERT INTO `ip_table` (`binary_start`, `binary_end`) VALUES ( :start, :end );' );
$stmt->bindValue( ':start', $binaryStart );
$stmt->bindValue( ':end', $binaryEnd );
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句