如何插入十六进制/二进制?进入mysql数据库?

2024-06-28 20:45:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图在mysql数据库的字段中插入一些十六进制值

这是我需要插入的值:

['D\x93\xb4s\xa5\x9eM\\\x14\xf3*\x95\xf9\x83\x1d*%P\xdb\xa2', 'D\xbf\xef\xb0\xc8\xff\x17\xc6Y6\xc6\xb4,p\xaa\xb1\xf2V\xdaa', 'D\xd7~~\x02\xd3|}\xfcN\xc1\x03\x97\x07\xb5<U\x16Y\x9e', '\xf3\xb6\xc2,Y/[i\x98\x93\x9d\xb2R\x93\x84\x12W\x1a3\x19', '\xf3\xb7\xce\x1f-n\x89\xb6\x87K\x9dsf\xcb=w\xab\x1a\xa0<', '\xf3\xbf7\x04d\xe6\xdf\xf8"9\x1d\x05\x01\xe4\xd4\xb0\xad\x80\xc0\xf5']

这是我的桌子

^{pr2}$

目前,我正在添加十六进制数据,就像添加普通字符串一样,但这会导致添加不可读的输入:

D??s??M?*???*%P?  

如何添加十六进制数据?在


Tags: 数据数据库mysqlxa5xb0x93x95x83
3条回答

检查字符集

   CREATE TABLE `t` (
      `id` varchar(32) NOT NULL,
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8

这些不是十六进制值。

我可能有点离题,但是我发现插入你的值的唯一方法是这样的:

$string = 'D\x93\xb4s\xa5\x9eM\\\x14\xf3*\x95\xf9\x83\x1d*%P\xdb\xa2';
$pattern = '#\\\#';
$replacement = '\\\\\\';
$insert_value = preg_replace($pattern, $replacement, $string);

之后继续插入。您可以对列使用VARCHAR(256)

我肯定有很多更好的方法来解决这个问题。


显然我是在python部分。我以为是PHP。这是我订阅多个标签的结果。

也许真正的方法是HEX()UNHEX()函数。但是,这篇文章可能会有帮助Inserting hex value mysql

相关问题 更多 >