我是新的工作在php,我的工作是如何改变数据库中的表动态编码在php
像这样的数据库,
数据库名称:数据交换
表名-数据
did dataname host dbuser dbpwd dbname
1 abc local root root abc_db // here dataname create new database, when register new dataname
2 pqr ubuntu root passwd pqr_db
php代码如下:
<?php
$dsn = "localhost";
$username = "root";
$password = "passwd";
$db = new PDO("mysql:host=$dsn;dbname=data_switch", $username, $password);
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
foreach ($db->query("select * from data") as $row)
{
$dataname = $row['dataname'];
$host = $row['host'];
$dbuser = $row['dbuser'];
$dbpwd = $row['dbpwd'];
$dbname = $row['dbname'];
$connection_array['data1'][] = array(
'dataname' => $dataname,
'host' => $host,
'dbuser' => $dbuser,
'dbpwd' => $dbpwd,
'dbname' => $dbname
);
}
echo "<pre>";
print_r($connection_array);
$dbh = new PDO("mysql:host=$host;dbname=$dbname", $dbuser, $dbpwd);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// here all dataname find but i dont know how to generate dataname's own connection. dynamically
?>
我在循环中得到所有的dataname,但是我不能动态地改变连接,我像一样在表单中注册新的dataname,然后它动态地创建一个新的数据库,但是当我改变表时,我不知道如何通过每个自己的dataname在每个dataname的主机、dbname、dbpwd上动态地连接。
任何人有任何想法请帮忙解决。谢谢
1条答案
按热度按时间sqxo8psd1#
我知道这是一个老帖子,但在一次搜索中发现它可能与我的一个问题有关。
我有一个脚本做什么是非常类似的要求。您需要将连接放置在动态变量中。
如。
我在一个名为$branchdcom的数组中列出了分支及其各自的数据库连接详细信息。我可以打电话到我所有的分支机构,而不必关闭连接和打开所有的时间。
我有一个连接函数,它使用conn\u dcom\u branch函数中发送的值连接到数据库('your\u server'、'your\u db'、'your\u username'、'your\u password')
下面创建到所有数据库的连接。
这提供了一个包含所有分支连接及其各自的数据库名称的数组。
要使用,只需输入分支名称,它将使用该连接:
这可能对某人有帮助