关闭

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

167人阅读 评论(0) 收藏 举报
分类:

用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();
成功了。


非常汗的一个问题。。

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:5103次
    • 积分:142
    • 等级:
    • 排名:千里之外
    • 原创:5篇
    • 转载:26篇
    • 译文:0篇
    • 评论:0条
    文章分类