我有一个interbranch库存系统,这意味着我有三个分支。只要管理员登录系统,它就会检测到他的分支机构的位置。以下是我的代码示例:
if ($_SESSION['user_role'] == 'Admin') {
$execLog = mysqli_query($connection, $queryLog);
if ($_SESSION['branch'] == 'BS') {
header("Location: ../admin");
} elseif ($_SESSION['branch'] == 'TD') {
header("Location: ../admin");
} elseif ($_SESSION['branch'] == 'FV') {
header("Location: ../admin");
}
每个分支都有一个特定的前缀用于我的数据库中的表。 BS为bs_
,TD为td_
,FV为fv_
。现在,我的问题是如何在不通过每个管理员的表格的情况下将查询设置到数据库中的特定表?
例如,如果我的分支是BS,我希望查询为:
SELECT * FROM bs_orders;
如果我的分支是TD,我希望查询为:
SELECT * FROM td_orders
我如何实现这一目标?
无论如何,这是我的connectdb.php代码
<?php
$db['db_host'] = "localhost";
$db['db_user'] = "root";
$db['db_pass'] = "";
$db['db_name'] = "inventorydb";
foreach ($db as $key => $value) {
define(strtoupper($key), $value);
}
$connection = mysqli_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME);
if (!$connection) {
echo "Failed to connect to the database" . mysqli_errno($connection);
}
?>
答案 0 :(得分:2)
使用字符串连接。
在这样的变量中设置前缀:
$prefix= strtolower($_SESSION['branch']);
并在查询中使用
$sql = "SELECT * FROM $prefix.'_orders'"
答案 1 :(得分:0)
类似的东西:
"SELECT * FROM " . strtolower($_SESSION['branch']) . "_orders";