zoukankan      html  css  js  c++  java
  • mysql数据库 thinkphp连贯操作where条件的判断不正确的问题

    前两天一直写一个基于thinkphp的东西,遇到从mysql数据库里select数据,where条件一直出现问题的情况。直接上代码:

    $history = M('history');

    $suerId = $_SESSION['user_id'];

    $rs=$histroy->where('history_user_id = $userId')->select();

    上面代码$rs一直返回false。不得其解。

    后来gettype($userId) 返回string

    想是不是histroy_user_id匹配的是数字。然后把$userId改为数字4,可以取出数据。

    然后就把$userId改为(int)$userId,发现不管用,还是取不出数据。

    后来就看了看thinkphp的手册,手册上也没有做解释,但看到可以用数组的形式来写条件。随后就改为下面的形式可以select出数据。

    $history = M('history');

    $where['user_id'] = $_SESSION['user_id'];

    $histroy->where($where)->select();

    至于到底应该用上面类型的数据跟字段history_user_id来匹配至今不知。还请大神们拍砖,指导?

    根据大神们的指导:发现一下方法都是可行的。

    • 数组存放条件,如上面。$where['history_user_id']=$userId; $history->where($where)->select();此处要注意where数组的索引要与判断的数据库表的字段保持一致。
    • $history->where("history_user_id = $userId")->select(),where条件有变量的时候要用双引号,单引号里的变量不解析。
    • $history->where('history_user_id = '.$userId)->select() 也是可以的

    更新于2013.11.04

  • 相关阅读:
    POJO,简单的Java对象
    Oracle 11g R2 for Win7旗舰版(64位)- 安装
    Eclipse安装与配置
    Tomcat 安装、配置与部署
    图形数据库 Neo4j 开发实战【转载】
    Java 语言中 Enum 类型的使用介绍【转载】
    IBM Java 7 新特性和在 WAS 8.5 中的配置【转载】
    为Eclipse指定JVM
    网页页面的宽度:950 还是 960?
    Zabbix + Grafana
  • 原文地址:https://www.cnblogs.com/js-html/p/3398419.html
Copyright © 2011-2022 走看看