gpt4 book ai didi

php - 转换为二进制后将 IPv6 存储到数据库

转载 作者:行者123 更新时间:2023-11-29 13:28:39 27 4
gpt4 key购买 nike

我有一个 ip 表,其中包含 VARBINARY 字段:ip_startip_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 );

关于php - 转换为二进制后将 IPv6 存储到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19786611/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com