【问题标题】:How in laravel it is possible to check up, whether there is a database, and if not that to create?如何在 laravel 中检查是否有数据库,如果没有则创建?
【发布时间】:2021-04-05 07:04:27
【问题描述】:

如果发生某些事情,我想做类似于数据库备份的事情。在恢复之前,我想检查数据库是否存在。我试着这样做

DB::statement('CREATE DATABASE IF NOT EXISTS db_name');

但这仅在数据库名称与配置 laravel 的数据库不匹配时才有效。并且有必要恢复它。在这种情况下

  Doctrine\DBAL\Driver\PDOException 

  SQLSTATE[HY000] [1049] Unknown database 'db_name'

这个错误。你怎么能解决这个问题?

【问题讨论】:

    标签: laravel


    【解决方案1】:

    试试这个:

    namespace App\Http\Controllers;
    
    use Illuminate\Support\Facades\DB;
    
    class Testing extends Controller
    {
       public function get()
       {
            $query = "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME =  ?";
            $db = DB::select($query, [$your_database_name]);
            if (empty($db)) {
                echo 'No db exist of that name!';
            } else {
                echo 'db already exists!';
            }
      
    

    对于使用 laravel 创建数据库,我认为此链接将对您有所帮助: How to create database schema (table) in Laravel?

    【讨论】:

      【解决方案2】:

      你可以做类似的事情

      try {
          if (Schema::hasTable('users'))
              return('Connection Established');
          else
              return ('No luck');
      
      } catch (\PDOException $e) {
          //This means there is definitely error connecting to database
          return('PDO Exception, check log.');
      }
      

      【讨论】:

      • 有点不对劲。我只需要检查基础是否一般。如果只有空的,那没关系,在方法中还有一个恢复。如果根本没有,那么您需要创建一个空的。你能帮忙怎么做吗?
      猜你喜欢
      • 2016-11-05
      • 1970-01-01
      • 2012-04-03
      • 1970-01-01
      • 2011-05-16
      • 2017-11-09
      • 2020-10-15
      • 2022-12-14
      • 2016-02-15
      相关资源
      最近更新 更多