php往mysql中存储时“=”的问题

用CI做个项目时,遇到一个问题,其中一个字段是base64转码后的,类似“MnlhMGpZTTNVMTQzNjUwNjQ3Ng==”。 作为查询条件时,始终查不出结果。


sql是这样写的:

$where = "user_id=" . $this->data['user_id']. " AND data='" .$this->data['token']. "' AND expire>". time();

把sql打印出来,就成了:

`user_id` = 2 AND data='MmJOaTBXMXZwMTQzNjUwMzY0NA= = ' AND `expire` > 1436503724

发现,“=”被处理了。跟踪后,发现是在CI的   DB_query_builder.php的_compile_wh函数中,将sql的key和value 分别解析为:

key:data='MmJOaTBXMXZwMTQzNjUwMzY0NA=

value: '


终于发现问题所在了。修改sql为:

$where = "user_id=" . $this->data['user_id']. " AND data = '" .$this->data['token']. "' AND expire>". time();
成功了。


非常汗的一个问题。。

阅读更多
个人分类: php CI
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

php往mysql中存储时“=”的问题

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭