在MySql中存储二进制空值

时间:2012-09-11 17:31:58

标签: php mysql uuid

我正在处理很多UUID,我一直在网上阅读,这是一个好主意

pack('H*',$uuid)

将字符串存储在数据库中以保存存储,然后使用

sprintf('insert .... values (%s,...)', $connection->quote($packed_uuid))

但问题是有时我的UUID中的'00'转换为NULL字符并且无法正确写入数据库。有什么东西我做错了吗?

1 个答案:

答案 0 :(得分:0)

我明白了。我不应该在存储值时打包它,让mysql自己打包。

mysql> INSERT INTO uuid_demo SET id=0x1e8ef774581c102cbcfef1ab81872213, name="Kekoa";
Query OK, 1 row affected (0.00 sec)

选择它:

mysql> SELECT hex(id), name FROM uuid_demo;
+----------------------------------+-------+
| hex(id)                          | name  |
+----------------------------------+-------+
| 1E8EF774581C102CBCFEF1AB81872213 | Kekoa | 
+----------------------------------+-------+
1 row in set (0.00 sec)

有关详细信息,请访问here