请教一下ThinkPHP里SQL查询的问题

查看:132
本文介绍了请教一下ThinkPHP里SQL查询的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

在某个控制器中加入了一个登录的方法,用原生的数据库操作方法查询。

如何获取SQL查询返回的记录集?Db::query返回的是个数组吗?

比如是下面代码的tablename表,字段有3个, ID,name, password. 我想得到查询结果中第0行的name字段的值,该怎么写?

刚用PHP不熟悉语法,赶工中比较着急,多谢帮忙给讲下哈。 :)

  public function login()
    {
        try
        {
            $request = Request::instance();

            $name = $request->param('name');
            $password = $request->param('password');
            
            $something = Db::query('select * from tablename where name=:name and password=:password',['name'=>$name ,'password'=>$password]);

            //怎么读取$something中的记录?

            return "{\"result\":1}";
        }
        catch(Exception $ex) 
        {
            return "{\"result\":$ex}";
        }
    }


测试了一下,Db::query返回的内容是个多维数组。第一层就是记录的条数,第二层数组就是具体每条记录的内容。需要哪行哪个字段的值就读取数组相应的位置就好了。

array(1) { [0]=> array(4) { ["ID"]=> int(1) ["adminName"]=> string(8) "stormer" ["cipher"]=> string(10) "123456" ["state"]=> int(1) } }

这个问题已被关闭,原因:问题质量差 - 问题太水、伸手党

解决方案

// 如果只需要name的值,那么name的值可以这样获取
$name = Db::table('tablename')->where(['name' => $name, 'password' => $password])->value('name');

这篇关于请教一下ThinkPHP里SQL查询的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆