【发布时间】:2019-07-24 22:00:35
【问题描述】:
我有一个“e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855”形式的输入(从 SHA-256 获得的 64 个十六进制字符),我想用 MySqli 将其存储在数据库中。值应插入到的列的类型为 BINARY(32)。 我认为该值被解释为一个字符串,而不是一个十六进制数字,所以 MySQL 返回“数据太长,对于第 y 行的 x 列”。 如何在 PHP 中将此字符串转换为 32 字节? 我已经尝试添加“0x”作为前缀,MySql 的 CONVERT 函数,我读到了 hex2bin 和 bin2hex,它们似乎没有做我想要的,我在 bind_params 中尝试了字符串和 int 类型(int 结果为 0x3000.. . 无论输入如何)
提前致谢
【问题讨论】:
-
hex2bin 应该做你想做的。为什么说没有呢?
-
我刚刚意识到我在 bind_param 中将类型设置为 String,但是如果我将其更改为 int,则数据库中的结果条目不是我的输入,而是 0x300....