laravel 之 数据库
发布日期:2025-04-04 03:12:21 浏览次数:12 分类:精选文章

本文共 2339 字,大约阅读时间需要 7 分钟。

Laravel DB_facade 指南

快速入门

要开始使用 Laravel 的数据库功能,你需要首先配置数据库连接。以下是一个典型的数据库配置示例:

'mysql' => [    'read' => [        'host' => '192.168.1.1',    ],    'write' => [        'host' => '196.168.1.2',    ],    'driver' => 'mysql',    'database' => 'database',    'username' => 'root',    'password' => '',    'charset' => 'utf8',    'collation' => 'utf8_unicode_ci',    'prefix' => '',],

记住,readwrite 主机地址通常应设置为不同的数据库实例,以支持数据库读写分离。


使用多数据库连接

在应用中使用多个数据库时,可以通过数据库连接名运行查询。例如:

$user = DB::connection('foo')->select('id, name FROM users WHERE id = ?', [1]);

此外,你还可以获取数据库连接的底层 PDO 实例:

$pdo = DB::connection()->getPdo();

原生 SQL 语句

Laravel 的 DB_facade 支持运行原生 SQL 语句。你可以按以下方式执行 SELECT 查询:

$user = DB::select('select * from users where active = ?', [1]);foreach ($user as $u) {    echo $u->name;}

或者使用命名参数:

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

inserts, updates, deletes

使用插入、更新和删除操作时,请确保提供的 SQL 语句完整且正确:

// 插入操作DB::table('users')->insert('insert into users (id, name) values (?, ?)', [1, 'Dayle']);// 更新操作$affected = DB::update('update users set votes = 100 where name = ?', ['John']);$deleted = DB::delete('delete from users');

事务

数据库事务需要谨慎处理,尤其是在多个数据库连接上。Laravel 支持通过 DB::transaction Begin, commit, rollback 等操作:

// 开始事务DB::beginTransaction();try {    // 操作数据库    DB::table('users')->update(['votes' => 1]);    DB::table('posts')->delete();} catch (Exception $e) {    // 事务回滚    DB::rollBack();}// 提交事务DB::commit();

查询构造器

Laravel 的查询构造器简化了数据库操作。你可以使用它来执行复杂的查询。例如,获取用户的所有信息:

$users = DB::table('users')->get();

获取特定用户的信息:

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

获取单个字段:

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

分页

Laravel 提供了分页功能,适用于处理大量数据。使用 paginate 方法分页:

$users = DB::table('users')->paginate(15);

简单分页(只显示上下页 })):

$users = DB::table('users')->simplePaginate(15);

Redis

Redis 是一个高性能的 key-value 存储系统,可以与 Laravel 一起使用。安装 Redis 后,你可以通过以下方式进行操作:

// 添加 Redis 依赖use PhpRedis\Redis;// 初始化 Redis$redis = new Redis();$redis->connect('localhost', 6379);

数据库迁移

数据库迁移可以通过 Laravel 的 migrations 文件进行。生成迁移文件并运行:

php artisan make:migration my_migrationphp artisan migrate

数据填充

使用数据库填充功能快速生成测试数据。通过 DB::generatedummydata 方法:

// 模拟生成数据DB::table('users')->generateDummyData();// 清空现有数据DB::table('users')->truncate();

通过以上方法,你可以高效地使用 Laravel 的数据库功能。如果需要进一步了解某些特定功能,请查看 Laravel 文档或查看相应的例子。

上一篇:Laravel 使用 - artisan schedule使用
下一篇:laravel 之 Eloquent 模型修改器和序列化

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2025年04月27日 06时06分51秒