- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
对于我所有的项目,我对数据库中的 id 字段使用 VARBINARY(16)。 id 是由以下代码生成的 uuid。
function gen_uuid() {
return sprintf('%04x%04x%04x%04x%04x%04x%04x%04x',
// 32 bits for "time_low"
mt_rand(0, 0xffff), mt_rand(0, 0xffff),
// 16 bits for "time_mid"
mt_rand(0, 0xffff),
// 16 bits for "time_hi_and_version",
// four most significant bits holds version number 4
mt_rand(0, 0x0fff) | 0x4000,
// 16 bits, 8 bits for "clk_seq_hi_res",
// 8 bits for "clk_seq_low",
// two most significant bits holds zero and one for variant DCE1.1
mt_rand(0, 0x3fff) | 0x8000,
// 48 bits for "node"
mt_rand(0, 0xffff), mt_rand(0, 0xffff), mt_rand(0, 0xffff)
);
}
Windows XP + MySQL 5.5.30 + PhpMyAdmin 3.5.2/3.5.8/4.0.0
我在 PhpMyAdmin 中运行以下查询并得到一个空结果
SELECT UNHEX('5578fae02ba342e0bc977266f8e08cf6')
如果我在 MySQL 控制台中运行它,我会得到以下结果
+-------------------------------------------+
| UNHEX('5578fae02ba342e0bc977266f8e08cf6') |
+-------------------------------------------+
| Ux·α+úBα╝ùrf°αî÷ |
+-------------------------------------------+
FreeBSD + MySQL 5.5.30 + PhpMyAdmin 3.5.2
我在 PhpMyAdmin 中运行相同的查询,并得到 ID 的十六进制版本作为结果 5578fae02ba342e0bc977266f8e08cf6
在 MySQL 控制台中运行查询会产生与在我的 XP 服务器上相同的结果
备注如果我在我的 XP 机器上浏览表数据,大约 10% 的行似乎没有 ID。该软件和所有关系似乎都能正常工作。如果我使用看似无效的 ID 编辑记录,我可以在页面的文本字段中看到预期的结果。保存它并不能解决任何问题,将其更改为另一个通常可以解决问题。
对我来说,这似乎是 PhpMyAdmin 的问题,但到目前为止,尝试不同的版本并没有解决任何问题。我之前运行的是 mysql 5.5.29 并更新到 5.5.30,但由于控制台版本似乎可以正常工作,我认为可以排除 mysql。两台服务器都使用 nginx 运行 PHP fast-cgi。更新到最新版本的 PHP 没有解决任何问题。
其他 UUID 的工作原理如这些屏幕截图所示:
XP 服务器
FreeBSD 服务器
最佳答案
原来这是 PhpMyAdmin 的一个错误,我会在他们的论坛上报告这个错误
if ($_SESSION['tmp_user_values']['display_binary_as_hex']
&& PMA_Util::containsNonPrintableAscii($column)
) {
$column = bin2hex($column);
} else {
$column = htmlspecialchars(
PMA_Util::replaceBinaryContents(
$column
)
);
}
从 if 语句中删除 containsNonPrintableAscii
函数解决了这个问题。它在我们的开发服务器上运行的原因原来是因为添加该功能的初始补丁是由我的同事提交的。 (后来被PhpMyAdmin开发组销毁)
关于MySQL UNHEX 函数在 phpmyadmin 中显示意外结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16106568/
我正在开发 Flask 并执行此语句 salt=os.urandom(32) db_session.execute('insert into posUsers values (?, ?, ?, ?)'
在 MySQL 中存储二进制数据时,我使用 hex()和 unhex()功能。但是我可以通过两种方式搜索二进制数据: 方法一 select * from tbl where id=unhex(
对于我所有的项目,我对数据库中的 id 字段使用 VARBINARY(16)。 id 是由以下代码生成的 uuid。 function gen_uuid() { return sprintf(
我使用以下代码将用户密码存储到 mysql 表中,密码列为 BINARY(20) 类型: $salted_hash = sha1($salt . $password); $sql = sprintf(
我有一个包含 UTF-8 字符的数据库,这些字符显示不正确。我认为我可以使用 UNHEX(HEX(column)) != column 条件来了解哪些字段中包含 UTF-8 字符。结果很有趣: id
在处理数据库中的十六进制值时,MySQL UNHEX 和 X 之间的真正区别是什么? 例如。 SELECT * FROM test WHERE guidCol IN (UNHEX('hexadecim
在处理数据库中的十六进制值时,MySQL UNHEX 和 X 之间的真正区别是什么? 例如。 SELECT * FROM test WHERE guidCol IN (UNHEX('hexadecim
我正在尝试将 MySQL 函数 UNHEX() 与运算符 LIKE 一起使用,但我无法获得 $result_2_expected 的预期结果。 我做错了什么? 我正在尝试以下方法,但都没有成功: 喜欢
我正在将一些使用 MySQL 的工具转换为 PostgreSQL。有了这个,我遇到了很多问题,但能够找到大部分内容。我遇到问题的是 HEX() 和 UNHEX()。我试过 encode(%s, 'he
我们使用 sqlalchemy,插入和更新工作正常,但现在我们想将 UUID 从 varchar 迁移到 varbinary。如何做到这一点? 现在的代码示例: engine = create_eng
为什么 SELECT UNHEX(1) 返回一个微笑? 我期待 1。 这里可能发生了什么? 最佳答案 UNHEX 尝试将十六进制数转换为字符串。由于您使用的是 ASCII 编码,因此 UNHEX(1)
我正在尝试学习 Sqlalchemy 并使用 ORM。我的专栏之一将文件哈希存储为二进制文件。在 SQL 中,选择只是 SELECT 类型,列 FROM table WHERE hash = UNHE
我试图从字符串中获取 Java 中的 MySQL 密码哈希,所以我用谷歌搜索了一下,发现了 MySQL 中的 PASSWORD() 是如何工作的: SELECT SHA1(UNHEX(SHA1('te
MySQL 的 UNHEX() 的 PHP 等价物是什么? 例如,以下查询和 PHP 函数应提供相同的值。 SELECT UNHEX(c1) AS unhexed_c1 FROM table; $un
我正在将一些使用 MySQL 的工具转换为 PostgreSQL。有了这个,我遇到了很多问题,但能够找到大部分内容。我遇到问题的是 HEX() 和 UNHEX()。我试过 encode(%s, 'he
我有一个适用于 MySQL(最新版本)的 SQL 脚本。我在 Linux 计算机上从源代码构建了 MariaDB-10.2.8 的副本,并启动并运行了数据库。但是,我的 SQL 脚本失败了,因为 Ma
SQL Server 是否具有与 HEX 和 UNHEX MySQl 函数等效的功能? 最佳答案 2022 年更新:这已过时,阅读有关 CONVERT() 和二进制类型的信息。 你要做什么? 类似脚本
我正在尝试使用 PHP 而不是 MYSQL 在数据库中添加键值 select unhex(md5('google.com')) from x; 输出 HVkg9LRLJ6gCvXfE8FNvWg==
我是一名优秀的程序员,十分优秀!