没什么区别,加表前缀可在一个数据库内运行多个应用程序避免数据表混乱
老师口误了。
在app里面的config 文件里面讲debug 后面改为true 下面那个也改为true 就可以啦!
insert into 插入语句里的password写了两次
已经解决了
database.php里面把database=>[]去掉,只要具体配置
应该是第2个写法正确。第一个只能取到一个email吧。
数据库配置database.php配置错误估计,尝试把database=>[]删除,只留下数据库配置
我的的运行没有问题,我的版本是5.1.9
id=? , 问号处应该传入字符串,你直接传的数组
<?php namespace app\index\controller; use think\Config; use think\Db; class Index { public function index() { $this->DBconnect(); //1、连接数据库 $this->DBQuery(); //2、使用查询语句 $this->DBChunk(); //3、数据集分批处理 } function DBconnect(){ //1、连接数据库 // $dbcon = Db::connect();//直接连接 参数在配置文件里配置 如果使用了自定义database配置,那么优先使用自定义配置的文件,如果没有,再使用默认的database配置 // $dbcon = Db::connect("mysql://root:@127.0.0.1:3306/itcast#utf8");//数据库类型://用户名:密码@数据库地址:数据库端口/数据库名#字符集 // $dbcon = Db::connect( // [ // 'type' => 'mysql', // 'hostname' => '127.0.0.1', // 'database' => 'itcast', // 'username' => 'root', // 'password' => '', // 'hostport' => '', // 'debug' => true // ] // );//直接写入配置 $dbcon = Db::connect(Config::get('db_config1'));//使用了自定义配置中的自定义db_config1 dump($dbcon); } function DBQuery(){ //2、使用查询语句 //查询book_list中id=1的记录 // $find_query=Db::name('list')->where('id',1)->find(); //配置了表前缀 则使用name(未配置表前缀使用table方法),省略了book_ //查询book_list中id=1的记录 $find_query=Db::table('book_list')->where('id',1)->find(); //find 方法返回结果,不存在返回null //查询book_list中id=1的记录 $selete_query=Db::table('book_list')->where('id',1)->select(); //selete 方法返回结果集,不存在返回空数组 //查询book_list中id=1的记录中某个字段的值 (相当于某个表的单元格,非一行数据) $value_query = Db::table('book_list')->where('id',1)->value('bname');//value方法不存在返回null, 取出ID为1的记录,再查找字段 书名对应的值 //column 返回数组 查询某一个字段对应的所有记录 $column_query = Db::table('book_list')->where('id',2)->column('bname');//查询ID为2的书名 // $column_query = Db::table('book_list')->column('bname');//查询表中书名的一列的所有值,返回一个数组 dump($find_query); dump($selete_query); dump($column_query); } function DBChunk(){ //3、数据集分批处理 /**该方法一次获取结果集的一小块,然后填充每一小块数据到要处理的闭包 *比如数据库有一万条记录,每页显示100条 *则可以使用chunk分批处理,每次处理100条后分页,再进行处理 */ /** * 例:book_list 表中现在有5条数据 * 我们分3页 * 则每页有2条数据 * 所以 chunk(2,回调函数); * 在回调函数中,foreach进行遍历处理 */ Db::table('book_list')->chunk(2,function ($results){ foreach ($results as $v){ //传入$results数组用来遍历,foreach则根据$results的长度来判断需要循环几次,将每一次遍历的成员再赋值给变量$v,以供后续进行使用 //$v表示2条中的其中一条,此处$v是一条记录,是数组变量 dump($v);//打印数组 输出遍历所处的一条记录 } echo '-----------------------------------分页----------------------'; }); //与上述方法相同。只不过回调函数不在方法内处理,将回调函数交给PageSplit方法 Db::table('book_list')->chunk(2,'pageSplit'); } function pageSplit($result){ return false; } }
顺便分享一下自己看了这一节视频所做的笔记!
是一维数组
你数据表中没有username为1的记录吧
去百度
已解决
你可以截图下你的报错信息
报错页面是什么样子 理论上没有任何问题
另外记得 开 pdo