laravel框架数据库操作、查询构建器、Eloquent ORM操

本文实例讲述了laravel框架数据库操作、查询构建器、Eloquent ORM操作。分享给大家供大家参考,具体如下:

1、连接数据库

laravel连接数据库的配置文件位于config/database.php中,在其中connection字段中包含laravel所支持的数据库的配置信息,可以看到其中有主机、端口、数据库、用户名、密码等信息:

'mysql' => [
  'driver' => 'mysql',
  'host' => env('DB_HOST', 'localhost'),
  'port' => env('DB_PORT', '3306'),
  'database' => env('DB_DATABASE', 'forge'),
  'username' => env('DB_USERNAME', 'forge'),
  'password' => env('DB_PASSWORD', ''),
  'charset' => 'utf8',
  'collation' => 'utf8_unicode_ci',
  'prefix' => '',
  'strict' => false,
  'engine' => null,
],

其中都是引入env文件中的默认值,laravel目录最外层有.env文件,在其中配置对应的默认值

DB_HOST=数据库服务器地址
DB_PORT=数据库端口
DB_DATABASE=数据库名
DB_USERNAME=用户名
DB_PASSWORD=密码

2、原生SQL操作数据库

在controller中对数据库进行增删改查的操作

public static function testDB(){
  //增加一条数据
  DB::insert("insert into student(name,age) values(?,?)",['sandy',19]);
  //删除一条数据
  DB::delete('delete from student where name=?',['sandy']);
  //修改一条数据
  DB::update('update student set sex=? where name=?',['男','tory']);
  //查询数据
  $res=DB::select('select * from student');
  //进行数据库通用操作
  DB::statement('drop table users');
  //打印结果
  dd($res);
}

其中通过?占位符的方式进行了参数绑定,以此来防止数据库注入攻击,也可以通过命名绑定的方式:   

$res = DB::select('select * from users where id = :id', ['id' => 1]);

3、通过查询构建器操作数据库

Laravel将常用的数据库操作封装为接口函数提供给用户调用,从而使数据库操作更为便捷,这些接口就是查询构建器(query builder)。而且通过PDO绑定的方式避免SQL注入攻击,在使用查询构建器时不必考虑过滤用户输入。

3.1、得到结果集

lavarel查询的返回结果集合是StdClass,可以通过$res->name类似访问对象属性的方式访问返回值。如果要查询整个表使用get(),查询表中一条数据使用first(),查询一条数据的某个字段用value(),查询表中所有数据的某个字段用pluck()

//get()返回表中所有数据
$res=DB::table('student')->get();
//first()返回结果集中的第一条数据
$res=DB::table('student')->where('id','1001')->first();
//value()返回一条数据中的指定字段
$res=DB::table('student')->where('id','1003')->value('name');
//pluck()返回结果集中name字段的所有值
$res=DB::table('student')->pluck('name');


      

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/5017.html