配置

数据库的配置文件在 config/database.php 文件中,你可以在这个文件中定义所有的数据库连接配置,并指定默认的数据库连接。这个文件中提供了大部分 Laravel 能够支持的数据库配置示例。

  1. 'mysql' => [
  2. 'driver' => 'mysql',
  3. 'url' => env('DATABASE_URL'),
  4. 'host' => env('DB_HOST', '127.0.0.1'),
  5. 'port' => env('DB_PORT', '3306'),
  6. 'database' => env('DB_DATABASE', 'forge'),
  7. 'username' => env('DB_USERNAME', 'forge'),
  8. 'password' => env('DB_PASSWORD', ''),
  9. 'unix_socket' => env('DB_SOCKET', ''),
  10. 'charset' => 'utf8mb4',
  11. 'collation' => 'utf8mb4_unicode_ci',
  12. 'prefix' => 'zx_',
  13. 'prefix_indexes' => true,
  14. 'strict' => true,
  15. 'engine' => null,
  16. 'options' => extension_loaded('pdo_mysql') ? array_filter([
  17. PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
  18. ]) : [],
  19. ],

执行原生 SQL 查询

一旦配置好数据库连接后,便可以使用 DB facade 门面运行查询。DB facade 为每种类型的查询提供了相应的方法:select,update,insert,delete 和 statement。

执行 Select 查询

你可以使用 DB Facade 的 select 方法来运行基础的查询语句:

use Illuminate\Support\Facades\DB;
public function index()
{
    $users = DB::select('select * from users where active = ?', [1]);
    return view('user.index', ['users' => $users]);
};

传递给 select 方法的第一个参数就是一个原生的 SQL 查询,而第二个参数则是需要绑定到查询中的参数值。通常,这些值用于约束 where 语句。参数绑定可以防止 SQL 注入。

select 方法将始终返回一个 array 数组,数组中的每个结果都是一个 stdClass 对象,可以像下面这样访问结果中的数值:

foreach ($users as $user) {
    echo $user->name;
}