在某个控制器中加入了一个登录的方法,用原生的数据库操作方法查询。
如何获取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) } }

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
你把那个
$something打印出来看下,就知道是不是数组了var_dump($something);
最好还是查文档,query返回有两种,如果数据非法或者查询错误则返回false,否则返回查询结果数据集(同select方法)。
累死了一晚没睡。看来坑还得自己慢慢填,查文档去了。