laravel切換數據庫并創建數據庫

寫之前先放上代碼截圖片段和注釋,僅供參考,下面會有解析:

代碼截圖


新建數據庫

在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,用了差不多一個禮拜才完成這些,希望可以幫助一些初學的朋友。

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

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容