我目前有多个数据库具有相同的表(人员、约定、组、申诉等)。我有一个应用程序,允许您查看饼图和数据Map,以及编辑每个表中的值。应用程序使用的数据在每个数据库中都是可用的,但是,每个数据库也有自己独有的字段,在其他数据库中找不到这些字段。
由于应用程序完全相同,我希望将它们合并到一个应用程序中,并允许用户(测量员)选择他们连接到的数据库,并在应用程序的所有页面上查看该数据库的数据。
这可能吗?我可以在index.php中有一个下拉列表来更新db.php中的数据库连接吗?这样每个需要db.php的页面都会显示index.php页面中所选数据库的数据?
数据库.php
<?php
header('Content-type: text/html; charset=UTF-8');
// host name, username, password, database
$con = mysqli_connect("localhost","root","","golddb");
// Check connection
if (mysqli_connect_errno())
{
echo "Failed to connect to MySQL: " . mysqli_connect_error();
exit();
}
// Change character set to utf8
if (!mysqli_set_charset($con, "utf8")) {
printf("Error loading character set utf8: %s\n", mysqli_error($con));
exit();
} else {
}
?>
索引.php
<?php
//include auth.php file on all secure pages
include("auth.php");
require("db.php");
?>
...
<!-- Page header with links to Dashboard & Map -->
<header id="page-content-header">
<div class="row">
<!-- Use element to open sidenav -->
<div class="col-xs-10">
<span style="font-size:30px;cursor:pointer" onclick="openNav()">☰ open</span>
</div>
</div>
<div class="row" id="main1">
<div style="float: left;">
<h3><strong>Mining:</strong> Gold Mine</h3>
</div>
<form action="#" method="post">
<!-- Select project Bar -->
<div style="float: right; width: 20%;">
<p>
Project
<select name="db_connection">
<option value="golddb">gold</option>
<option value="tutorial">tutorial</option>
</select>
<input type="submit" name="submit" value="Get Selected Values" />
</p>
</div>
</form>
<?php
if(isset($_POST['submit'])){
$selected_val = $_POST['db_connection']; // Storing Selected Value In Variable
// Change database to the selected value (selected_val)
mysqli_select_db($con,$selected_val);
}
?>
</div>
</header>
谢谢你的帮助
1条答案
按热度按时间gorkyyrv1#
我很确定你的代码运行得很好,但是既然你没有尝试在
mysqli_select_db($con,$selected_val);
没有区别。但也许你想要的是从一开始就改变它,在这种情况下是在
db.php
你可以试试:更安全的方法是使用交换机案例,而不是用户发送的数据:
也可以重命名
$con
作为$con_selected
如果您希望同时使用旧的连接(可能对于您的常规数据库,以及身份验证的数据,您的用户应该看不到的数据)和新的连接。