for 发表于 2016-2-2 10:32:32

$query 的 return 总是不对

user的model

function userexist($tel)
        {
                $query = $this->db->query("select * from User where tel='".$tel."'");
                if ($query) {
                        return TRUE;
                }
                return FALSE;
        }


在 ake 的 controller 中调用
$tel = "13112341234";
$this->load->model('user_model');
$select_query = $this->user_model->userexist($tel);


想得到的结果是检查该手机号码在数据库中是否存在,存在则返回1,错误则返回0, 但现在遇到的问题是,不管是否存在这个电话号码,返回都是 1,请问我写错的地方是?

for 发表于 2016-2-2 11:06:07

自己搞定。

bayniwffg 发表于 2016-2-2 11:22:02

你这样写法,是不是无论如何都会返回false啊,因为一步步执行下来,总会执行到 return false,

for 发表于 2016-2-2 11:35:56

bayniwffg 发表于 2016-2-2 11:22
你这样写法,是不是无论如何都会返回false啊,因为一步步执行下来,总会执行到 return false, ...

...
这样写没错,不可能都会返回 false

bayniwffg 发表于 2016-2-2 12:00:45

for 发表于 2016-2-2 11:35
...
这样写没错,不可能都会返回 false

你把return FALSE; 屏蔽了试试,看会不会总是返回都是 1

Michael锐生 发表于 2016-2-2 12:17:47

query返回的是执行结果,SQL是可以正常执行的,所以会返回TRUE,你需要的是执行SQL后的对象个数

猫薰雲 发表于 2016-2-2 22:53:07

我也感觉楼上说的有道理,可以使用count_all_results函数:

public function userexist($tel)
{
      $this->db->where(array('tel'=>$tel));
      $result = $this->db->count_all_results('User');
      return $result;
}

      

Aloghli 发表于 2016-2-3 11:03:54

你应该判断$query->num_rows()啊不是直接判断$query

wo很忙 发表于 2016-2-15 20:03:11

同意楼上
页: [1]
查看完整版本: $query 的 return 总是不对