Php 根据门店分支在表上选择特定前缀
我有一个跨部门库存系统,这意味着我有三个分支机构。每当管理员登录到系统时,它将检测其分支的位置。下面是我的代码示例:Php 根据门店分支在表上选择特定前缀,php,mysql,Php,Mysql,我有一个跨部门库存系统,这意味着我有三个分支机构。每当管理员登录到系统时,它将检测其分支的位置。下面是我的代码示例: if ($_SESSION['user_role'] == 'Admin') { $execLog = mysqli_query($connection, $queryLog); if ($_SESSION['branch'] == 'BS') { header("Location: ../admin"); } elseif
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;
SELECT * FROM td_orders
如果我的分行是TD,我希望查询是:
SELECT * FROM bs_orders;
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);
}
?>
类似于:
"SELECT * FROM " . strtolower($_SESSION['branch']) . "_orders";
使用字符串连接 在变量中设置前缀,如下所示:
$prefix= strtolower($_SESSION['branch']);
并在查询中使用
$sql = "SELECT * FROM $prefix.'_orders'"
只是做一个字符串连接怎么样?在变量中设置前缀,并在查询中使用$prefix中的
。“\u orders”
。谢谢。我很惊讶我没有想到这一点。很高兴能帮上忙。我将把它包装在一个答案中,这样您就可以批准它。当我回显$sql时,它会显示SELECT*FROM bs.“\u orders”
。所以我用,{$prefix}
代替了$prefix.
。现在很好用。