使用PHP mcrypt插入时,查询随机失败

使用PHP mcrypt插入时,查询随机失败,php,mysql,encoding,mcrypt,Php,Mysql,Encoding,Mcrypt,把我的头撞在墙上。但是我使用的是utf8\u general\u ci编码,在MySQL数据库中的类型是tinyblob 如插入中所示,我在uname、pwrod和email行上使用了Mcrypt。有时这会插入,其他则不会。这显然取决于用于生成加密的字符串 这是我的插页 INSERT INTO `users` ( `uname` , `pword` , `email` , `gender` , `provider` , `level` , `dob` , `confirmed` , `regda

把我的头撞在墙上。但是我使用的是
utf8\u general\u ci
编码,在
MySQL数据库中的类型是
tinyblob

如插入中所示,我在uname、pwrod和email行上使用了
Mcrypt
。有时这会插入,其他则不会。这显然取决于用于生成加密的字符串

这是我的插页

INSERT INTO `users` ( `uname` , `pword` , `email` , `gender` , `provider` , `level` , `dob` , `confirmed` , `regdate` , `confirmationCode`, `ip` ) 
VALUES ('“­É.¡Ec', '$2a$15$3G.7Pfap0dfWnEZxVPKWjewcLUA6tYm7a1al6I0QNZUCNcdl6E6Mu', 'ðÖŒÅÕ'Ý£mY]ª±¼ ôn´}Ð>d¢', '0','manual', '0', '2014-02-16', '0',NOW(), 'f5ab855e95eab47948b05cfe5a03e4d6', '127.0.0.1' ); 
Error Nr: 1064 Error Msg: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Ý£mY]??? ?n?}?>d?', '0','manual', '0', '2014-02-16', '0',NOW(), 'f5ab855e95eab' at line 14 
如果我将
'
更改为
`
,则会出现以下错误:

 Error Nr: 1300 Error Msg: Invalid utf8 character string: '\x93\xAD\xC9.\xA1E\x04c'
我想我需要更改我的
字符编码
?但这正是我的知识下降的地方(通常所有编码:)

您正遭受一个漏洞:

  [..snip..], 'ðÖŒÅÕ'Ý£mY]ª±¼ ôn´}Ð>d¢',[..snip..]
              ^--start string
                    ^---end string

您生成的查询不正确-要么没有转义要填充到查询字符串中的数据,要么没有使用DB库的预处理语句/占位符功能。

您真的需要加密这些内容吗。很遗憾,我需要:(我正在处理的数据需要完全谨慎!情况不好,但是Nesery。如果我偷了你的数据库,我可能还会有加密密钥吗?它存储在哪里?幸运的是,数据库与我的php位于不同的服务器上:)好的,事实上非常明显的地方,谢谢。我就在那里给帽子一个快速旋转。可怜的boby表!一个问题,如果我可以,Marc是,如果我逃出
,这不意味着我在解密时必须移除它们吗?关于escpaing字符串问题Marc/对不起Marc,有什么想法吗?但似乎我仍然有问题。我确实相信我已经修好了。所以我要逃跑。至于准备好的语句,我承认我不知道它们是什么。除了谷歌搜索任何指针?