一、TP5原生读操作是通过Query类的query()方法来实现
2、Db类直接静态调用方法
静态调用方式(最直接、速度也最快)
我们看源码发现,query()并不是一个静态方法,为什么静态调用呢?
如果要搞清这个问题,必须要看一下Db类的源码
我们先严格按照SQL语句生成三步曲来写
类:: 连接器->SQL解析与生成->执行SQL语句
实例:查询tp5_staff表中男员工中工资大于3000的员工信息
3000';
//将配置字符串做为connect()的参数传入
$result=Db::connect($dbConfig) //创建数据库连接
->query($sql); //获取结果集
//以二维数据方式返回结果集
dump($result);
}
}
我们的项目绝大多数都采用一个数据库,因此数据库的连接信息一旦配置好,就可以随处调用。对于默认数据库连接,我们可以省去创建数据库实例的步骤。
3000';
//获取结果集
$result=Db::query($sql);
//以二维数据方式返回结果集
dump($result);
}
}
运行结果与上面的完全相同。
什么是防止SQL注入,感兴趣的同学,可以了解一下~~
参数绑定,我们是通过数组方式来实现的。
例如:上面的SQL语句中的条件部分,用到了二个待定参数,我们就可以用参数绑定的方式来实现动态设置。
例:query(‘SELECT * FROM tp_staff WHERE id = ?’,['1005']);
如SQL语句使用命名占位符,而不是通用的 ?,我们还可以用关联数组来实现
如:query(‘SELECT * FROM tp_staff WHERE id = :id’,['id'=>1005]);
下面我们继续改写控制器Index.php
?';
//获取结果集
$result=Db::query($sql,[1,3000]);
//以二维数据方式返回结果集
dump($result);
}
}
:salary';
//获取结果集
$result=Db::query($sql,['sex'=>1,'salary'=>3000]);
//以二维数据方式返回结果集
dump($result);
}
}