Laravel - MySQL数据库的使用详解1(安装配置、基本用法)

作者: hgphp 发布时间: 2019-09-13 浏览: 800 次 编辑

一、数据库配置

(1)打开 config 文件夹下的 database.php 文件,修改 mysql 部分的连接配置。

'mysql' => [
        'driver' => 'mysql',  //数据库的类型
        'host' => env('DB_HOST', '127.0.0.1'), //数据库的位置
        'port' => env('DB_PORT', '3306'),  //端口号
        'database' => env('DB_DATABASE', 'hangge'),  //数据库名
        'username' => env('DB_USERNAME', 'root'),  //用户名
        'password' => env('DB_PASSWORD', 'hangge1234'), //密码
        'unix_socket' => env('DB_SOCKET', ''),
        'charset' => 'utf8',  //字符集
        'collation' => 'utf8_unicode_ci',  //排序方式
        'prefix' => '',  //前缀
        'prefix_indexes' => true,
        'strict' => true,  //Strict模式
        'engine' => null,  //引擎
        'options' => extension_loaded('pdo_mysql') ? array_filter([
        PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
        ]) : [],
        ],


(2)接着还需要编辑项目根目录下的 .env 文件,修改数据库部分:

DB_CONNECTION=mysql
        DB_HOST=127.0.0.1
        DB_PORT=3306
        DB_DATABASE=hangge
        DB_USERNAME=root
        DB_PASSWORD=hangge1234

二、基本用法

1,数据查询样例

(1)假设我们数据库中有个用户表(user),里面有如下数据:

原文:Laravel - MySQL数据库的使用详解1(安装配置、基本用法)

(2)首先创建一个用户控制器,路径为 app/Http/Controllers/API/UserController.php,内容如下:

<?php
        namespace app\Http\Controllers\API;
        use App\Http\Controllers\Controller;
        use Illuminate\Http\JsonResponse;
        use Illuminate\Http\Request;
        use Illuminate\Support\Facades\DB;
class UserController extends Controller
{
    // 根据id返回用户数据
    public function getUser($id)
    {
        $users = DB::select('select * from user where id = ?', [$id]);
        return response()->json([
            'status'  => true,
            'result'    => $users,
        ]);
    }
}


(3)接着编辑 routes/api.php 文件,增加对应的 API 路由:

<?php
        use Illuminate\Http\Request;
        // 请求地址则为 http://域名/api/getUser/xx
        Route::get('/getUser/{id}', 'API\UserController@getUser');


(4)打开浏览器访问 http://localhost:8000/api/getUser/2 可以看到数据已经成功返回了:

如果页面显示连接错误的话,可以参考我的另一篇文章内容解决:

原文:Laravel - MySQL数据库的使用详解1(安装配置、基本用法)

2,其它的一些常用操作

(1)插入数据

DB::insert('insert into user (username, password) values (?, ?)', ['pikachu', '334455']);


(2)更新数据

// 会返回受影响的行数
        $rows = DB::update('update user set password = ? where id = ?', ['222', 2]);


(3)删除数据

// 会返回受影响的行数
        $rows = DB::delete('delete from user where id = ?', [3]);


(4)使用 DB::statement 可以执行一些通用语句,比如下面删除整个 user 表:

DB::statement('drop table user');


3,数据库事务

(1)在 transaction 闭包中的任何异常都会导致事务自动回滚:

DB::transaction(function()
        {
        DB::update('update user set password = ? where id = ?', ['23', 2]);
        DB::delete('delete from user where id = ?', [3]);
        });


(2)我们也可以手动控制事务的开启、回滚、提交:

// 开启事务
        DB::beginTransaction();
        // 回滚事务
        DB::rollback();
        // 提交事务
        DB::commit();


4,多个数据库连接访问

(1)当使用多个数据库连接时,可以通过 DB::connection 方法访问它们:

$users = DB::connection('foo')->select(...);


(2)我们可以通过 PDO 实例访问原生连接:

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


(3)如果需要重连数据库可以通过如下方法:

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


(4)如果因为超出 PDO 实例的最大连接数限制而要断开连接,使用 disconnect 方法:

DB::disconnect('foo');


原文链接:https://www.hangge.com/blog/cache/detail_2380.html


Laravel - MySQL数据库的使用详解系列:

1,Laravel - MySQL数据库的使用详解1(安装配置、基本用法) 4,Laravel - MySQL数据库的使用详解4(Eloquent ORM用法1:创建模型) 7,Laravel - MySQL数据库的使用详解7(Eloquent ORM用法4:插入、更新数据)
2,Laravel - MySQL数据库的使用详解2(Query Builder用法1:查询操作) 5,Laravel - MySQL数据库的使用详解5(Eloquent ORM用法2:基本查询、动态范围) 8,Laravel - MySQL数据库的使用详解8(Eloquent ORM用法5:删除数据)
3,Laravel - MySQL数据库的使用详解3(Query Builder用法2:新增、修改、删除) 6,Laravel - MySQL数据库的使用详解6(Eloquent ORM用法3:模型关联、关联查询 9,Laravel - MySQL数据库的使用详解9(Eloquent ORM用法6:事件、订阅、观察者)