2012-01-10 75 views
0

我无法让php的mcrypt函数以可以存储在我的mysql数据库中的方式加密文本。导致mysql错误的mcrypt字符

下面是一个查询的例子不工作:

UPDATE mydatabase.clients SET firstname='\'å»”é¶Q' WHERE id_client=65 

但如果我更改为:

UPDATE mydatabase.clients SET firstname='Test' WHERE id_client=65 

然后,它的工作原理。所以它必须是那些疯狂的mcrypt角色扔掉东西。

我该怎么做我的mysql数据库,以便它接受这些字符?

回答

1

密码的输出是一串字节,而不是字符。您不应将密文直接存储为文本。使用“二进制”数据类型,或使用类似Base-64的东西将字节字符串转换为文本。

0

改变列类型为二进制代替,这可能工作。

0

确保您正在转义加密的字符串。这是做这件事的重要部分!

我一直与MySQL和这个Mcrypt和我存储我的加密数据和初始化向量作为二进制和我逃避所有这些字符串,他们得到放入查询之前。奇迹般有效。