📜  laravel 数据库查询 - PHP (1)

📅  最后修改于: 2023-12-03 15:17:15.054000             🧑  作者: Mango

Laravel 数据库查询 - PHP

Laravel是一个优秀的PHP框架,它提供了一整套强大的数据库操作方法,包括查询、插入、更新、删除等。本文将主要介绍Laravel中的数据库查询操作。

数据库连接配置

在Laravel中,数据库的连接配置保存在.env文件中,可通过config/database.php文件进行访问。

// .env
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=my_database
DB_USERNAME=my_username
DB_PASSWORD=my_password
// config/database.php
'connections' => [
  'mysql' => [
    'driver' => 'mysql',
    'host' => env('DB_HOST', '127.0.0.1'),
    'port' => env('DB_PORT', '3306'),
    'database' => env('DB_DATABASE', 'forge'),
    'username' => env('DB_USERNAME', 'forge'),
    'password' => env('DB_PASSWORD', ''),
    'charset' => 'utf8mb4',
    'collation' => 'utf8mb4_unicode_ci',
    'prefix' => '',
    'strict' => true,
    'engine' => null,
  ],
],
简单查询

Laravel提供了非常简洁和易于使用的查询方法,如下所示:

$users = DB::table('users')->get();
foreach ($users as $user) {
  echo $user->name;
}

在上面的代码中,我们使用DB::table()方法来指定要操作的表名,然后使用get()方法来检索所有记录。可以使用first()方法来检索第一条记录。

$user = DB::table('users')->where('name', 'John')->first();
echo $user->name;

在上述代码中,我们使用where()方法指定了查询条件,使用first()方法只检索了一条记录。

条件查询

在Laravel中,我们可以轻松地使用各种条件查询来检索记录。

where条件

where()方法用于指定查询条件。例如:

$users = DB::table('users')
              ->where('name', '=', 'John')
              ->get();

我们还可以通过使用orWhere()方法指定多个查询条件,例如:

$users = DB::table('users')
              ->where('name', '=', 'John')
              ->orWhere('name', '=', 'Jane')
              ->get();
whereBetween条件

whereBetween()方法用于指定一个范围查询条件,例如:

$users = DB::table('users')
              ->whereBetween('votes', [1, 100])
              ->get();
whereIn条件

whereIn()方法用于指定一个IN查询条件,例如:

$users = DB::table('users')
              ->whereIn('id', [1, 2, 3])
              ->get();
whereNull条件

whereNull()方法用于指定一个NULL查询条件,例如:

$users = DB::table('users')
              ->whereNull('updated_at')
              ->get();
whereDate条件

whereDate()方法用于指定日期查询条件,例如:

$users = DB::table('users')
              ->whereDate('created_at', '2022-01-01')
              ->get();

我们还可以使用whereMonth()whereDay()whereYear()方法来指定月、日和年查询条件。

orderBy和groupBy

在Laravel中,我们可以非常容易地对查询结果进行排序和分组。例如,以下代码将按名称对用户进行排序:

$user = DB::table('users')
             ->orderBy('name', 'desc')
             ->get();

我们还可以使用groupBy()方法对查询结果进行分组。

$user = DB::table('users')
             ->groupBy('account_id')
             ->get();
原生查询

在Laravel中,您也可以使用原生SQL查询。例如:

$users = DB::select('select * from users where id = ?', [1]);
总结

以上就是Laravel中的一些常见的数据库查询方法,可以轻松地对数据库进行各种操作。我们可以使用 WHERE、ORDER BY、GROUP BY 等方法实现灵活的查询。