gpt4 book ai didi

database - Concrete 5.7 即时切换数据库

转载 作者:搜寻专家 更新时间:2023-10-30 20:09:09 25 4
gpt4 key购买 nike

我想将表单结果写入另一个数据库。

在 Concrete 5.6 中,您可以即时切换到另一个数据库。我无法找出它在 Concrete 5.7 中的工作原理。

5.6 方式

$db = Loader::db( 'newserver', 'newuser', 'newpassword', 'newdatabase', true);

可以在 Concrete 5.7 中使用旧版 Loader。我尝试连接到数据库,但在错误中您可以看到它仍在尝试使用默认数据库。

$db = Database::get();
//tried this
$db = Loader::db('localhost', 'root', 'root', 'db_new', true);
//error
//db_original.db_new does not exist

最佳答案

我建议您在 application/config/database.php 中设置另一个连接。所以你的配置可能看起来像这样:

<?php

return array(
'default-connection' => 'concrete',
'connections' => array(
'concrete' => array(
'driver' => 'c5_pdo_mysql',
'server' => 'localhost',
'database' => 'c5',
'username' => 'uuuuuuuuuuu',
'password' => 'ppppppppppp',
'charset' => 'utf8'
),

'my_new_db' => array(
'driver' => 'c5_pdo_mysql',
'server' => 'localhost',
'database' => 'db_new',
'username' => 'uuuuuuuuuuu',
'password' => 'ppppppppppp',
'charset' => 'utf8'
)
)
);

然后,当您使用您的代码时,您可以通过执行以下操作随时访问该连接:

//get the default connection
$newDb = \Core::make('database')->connection();
//get the new connection
$newDb = \Core::make('database')->connection('my_new_db');

编辑:对于那些希望更改数据库驱动程序类型的人,您需要在您的配置中实际映射一个驱动程序实现,它可能看起来像这样:

<?php

return array(
'default-connection' => 'concrete',

'drivers' => array(
'pdo_sqlsrv' => 'Doctrine\DBAL\Driver\SQLSrv\Driver'
),

'connections' => array(
'concrete' => array(
'driver' => 'c5_pdo_mysql',
'server' => 'localhost',
'database' => 'c5',
'username' => 'uuuuuuuuu',
'password' => 'pppppppppp',
'charset' => 'utf8',
),

'my_new_db' => array(
'driver' => 'pdo_sqlsrv',
'server' => 'mydatabaseserver.mycompany.com',
'database' => 'my_new_db',
'username' => 'uuuuuuuuuuu',
'password' => 'ppppppppppp',
)
),
);

关于database - Concrete 5.7 即时切换数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30593616/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com