【问题标题】:Laravel create and change database in the same requestLaravel 在同一个请求中创建和更改数据库
【发布时间】:2018-12-27 18:13:12
【问题描述】:

我想要做的是使用来自表单的请求创建一个数据库。

然后连接到创建的数据库并在里面创建一个表。

在同一个页面和同一个请求上。

我不知道该怎么办,因为打开页面时使用了env文件和数据库文件,我无法在那里输入值。

$database_create_control=DB::statement('create database '.$prefix);

/*****/

  Schema::create('companies', function (Blueprint $table) {
      $table->increments('company_id');
      $table->string('company_name',255);
      $table->timestamp('created_at')->nullable();
      $table->timestamp('updated_at')->nullable();
  });

我要连接的表正在数据库中

但我的愿望是在几行前创建的数据库中工作。

【问题讨论】:

  • 有一个表来保存数据库信息并在需要时使用它?
  • 我要使用的数据库是 *DB::statement('create database '.$prefix); the database 。我在代码中使用此数据库创建。但是这个数据库没有在 '.env' 和 'config/database.php' 文件中定义。

标签: mysql database laravel schema


【解决方案1】:

创建数据库后,这是连接到它的方式:

Config::set("database.connections.mysql", [
"host" => "...",
"database" => "...",
"username" => "...",
"password" => "...
]);

然后做DB::purge('mysql');

然后在此之后执行Schema::create('companies')... 这样你就可以使用新的数据库了

【讨论】:

  • 但它没有出现在我再次创建表的数据库中。它出现在当前数据库中。
  • 执行此操作后,配置设置为在每个请求中使用此连接,因此您可以像平常一样使用它
  • formed 是什么意思?
  • SQLSTATE[42S01]:基表或视图已存在:1050 表“公司”已存在(SQL:创建表companies (company_id int unsigned not null auto_increment 主键,company_name varchar(255) not null, created_at timestamp null, updated_at timestamp null) 默认字符集 utf8 collat​​e 'utf8_unicode_ci' engine = InnoDB ROW_FORMAT=DYNAMIC)
  • 数据库连接没有变化
【解决方案2】:
Config::set('database.connections.mysql', array(
            'driver'    => 'mysql',
            'host'      => 'localhost',
            'database'  => $prefix,
            'username'  => 'root',
            'password'  => '',
            'charset'   => 'utf8',
            'collation' => 'utf8_general_ci',
            'prefix'    => '',
        ));
        // and reconnect the DB class to the newly created version.

        DB::reconnect();

此解决方案有效!谢谢@侯赛因

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-20
    • 1970-01-01
    • 1970-01-01
    • 2017-05-20
    • 2020-05-03
    • 2019-09-22
    • 1970-01-01
    • 2019-05-29
    相关资源
    最近更新 更多