用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2524|回复: 7
收起左侧

关于CI读取数据库内容的疑问

[复制链接]
发表于 2012-8-22 15:45:52 | 显示全部楼层 |阅读模式
第一个:
function test1()
  {   
            
            $this->db->where("user_id" , 1);
            $query = $this->db->get('users');
            var_dump($this->db->last_query());
}
这样输出的是
"SELECT *FROM (`users`)WHERE `user_id` = 1"
第二个:
function test2($str ='$this->db->where("user_id" , 1)' )
{   
            
            $str;
            $query = $this->db->get('users');
            var_dump($this->db->last_query());

这输出的是:
SELECT *FROM (`users`);
这是为什么呢,
第二个为什么不可以,要如何实现function test2这种思路?

发表于 2012-8-22 18:09:02 | 显示全部楼层
第一个函数 test1 里的 $this->db->where("user_id" , 1); 能够正常执行,就是给 sql 加了个条件 WHERE `user_id` = 1,而第二个函数 test2 参数里的 $str ='$this->db->where("user_id" , 1)' 只是给 $str 设置了一个默认值为 '$this->db->where("user_id" , 1)' ,这只是个字符串,而不是可执行的代码,所以结果就是你说的那样。
 楼主| 发表于 2012-8-23 09:59:37 | 显示全部楼层
第二个函数 test2 参数里的 $str ='$this->db->where("user_id" , 1)' 只是给 $str 设置了一个默认值为 '$this->db->where("user_id" , 1)' ,这只是个字符串,而不是可执行的代码,这个要怎么样才可以让这个字符串成功可执行代码
 楼主| 发表于 2012-8-23 09:59:55 | 显示全部楼层
qq494686707 发表于 2012-8-22 18:09
第一个函数 test1 里的 $this->db->where("user_id" , 1); 能够正常执行,就是给 sql 加了个条件 WHERE `us ...

第二个函数 test2 参数里的 $str ='$this->db->where("user_id" , 1)' 只是给 $str 设置了一个默认值为 '$this->db->where("user_id" , 1)' ,这只是个字符串,而不是可执行的代码,这个要怎么样才可以让这个字符串成功可执行代码
发表于 2012-8-23 10:05:25 | 显示全部楼层
去年明日 发表于 2012-8-23 09:59
第二个函数 test2 参数里的 $str ='$this->db->where("user_id" , 1)' 只是给 $str 设置了一个默认值为 ' ...

也就是第一个函数 test1 那样写了
 楼主| 发表于 2012-8-24 10:40:09 | 显示全部楼层
qq494686707 发表于 2012-8-23 10:05
也就是第一个函数 test1 那样写了

如果要以参数的形式来实现这个功能又要怎么做
发表于 2012-8-24 13:10:09 | 显示全部楼层
去年明日 发表于 2012-8-24 10:40
如果要以参数的形式来实现这个功能又要怎么做

没那个必要呢,你那样做是很不规范的,参数用来接收值或对象的,而不是让参数去执行一个过程
 楼主| 发表于 2012-9-8 15:07:40 | 显示全部楼层
qq494686707 发表于 2012-8-24 13:10
没那个必要呢,你那样做是很不规范的,参数用来接收值或对象的,而不是让参数去执行一个过程 ...

谢谢

本版积分规则