写之前先放上代码截图片段和注释,仅供参考,下面会有解析:
新建数据库
在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,用了差不多一个礼拜才完成这些,希望可以帮助一些初学的朋友。
注:以上操作在代码中完成,不是命令行操作!!