laravel切换数据库并创建数据库

写之前先放上代码截图片段和注释,仅供参考,下面会有解析:

laravel切换数据库并创建数据库_第1张图片
代码截图


新建数据库

在laravel中,连接MySQL数据库,并新建一个要切换的数据库,用mysql_connect会报错,换成下面方式:

$link = mysqli_connect('localhost', 'root', 'password');

mysqli_query($link, "CREATE DATABASE test");

mysqli_close($link);

切换数据库

Config::set('database.connections.mysql.database', 'test');

DB::reconnect('mysql');

数据库迁移建表

Artisan::call('migrate:refresh', ['--force' => true,]);

报错如下:

SQLSTATE[42S02]: Base table or view not found: 1146 Table 'database.migrate' doesn't exist (SQL: select * from `permissions`)

解决方法:在建表语句前初始化 migrate  因为新建的数据库没有migrate表,所以没法执行refresh。

Artisan::call('migrate:install');

Artisan::call('migrate:refresh', ['--force' => true,]);

选择自己需要迁移的文件:

Artisan::call('migrate', ['--path' => 'database/migrations/test',]);

或者:

Artisan::call('migrate', array('--path' => 'database/migrations'));

我自己刚学laravel,用了差不多一个礼拜才完成这些,希望可以帮助一些初学的朋友。

注:以上操作在代码中完成,不是命令行操作!!

你可能感兴趣的:(laravel切换数据库并创建数据库)