我正在管理一家在线商店。每个产品都有自己的费用计算(1% + 0.10€/1% + 0.20€/1% + 0.30€等(。我现在无法猜测什么是费用,因为我们遵循复杂的计算,无法直接将它们集成到 PHP 类中。
我希望在我的后端能够添加公式并将它们分配给每个产品。示例:对于产品 A,我想创建费用计算"X/100+0.10",其中 X 是产品价格。如何将这种公式存储在 SQL 行中?安全吗?我如何告诉 PHP 将此行用作:
$fee = X/100 + 0.1;
谢谢!
因此,根据经验,您可以在数据库中存储任何内容 - 不要担心您可以存储什么,您需要担心的是存储它的方式 - 数据库只理解数据类型,而不是该数据的含义 - 所以要回答您的问题,是的,将该字符串存储在数据库中是安全的(假设您使用正确的逃生方法等(
老实说,在没有更多了解我们正在谈论多少种不同计算的情况下,这是一个相当困难的计算 - 在理想情况下,您会在数据库中为计算中的每个不同变量/指数设置一个字段,然后在 PHP 端组装它,但是鉴于您已经说过这可能很复杂 - 这样的东西可能适用于通用情况, 尽管它还有很多不足之处:
假设你在数据库中存储的东西,就像这样
$formula = ‘X/100 + 0.1’;
insertIntoDatabase($formula);
—— some time later
$resultsOfQuery = someDatabaseMethod();
foreach($resultsOfQuery as $row)
{
$calculation = str_replace(‘X’, $row[‘price’], $row[‘formula’]);
//here $calculation now contains something like ’22.1/100 + 1’;
}
现在,在我们的 foreach 循环中,$calculation包含类似"22.1/100 +1"的东西,需要评估 - 您可以通过多种方式执行此操作 - 这篇 SO 帖子对此进行了解释: PHP 函数将像"2-1"这样的字符串计算为算术 2-1=1
这只是一种方式,有很多 - 小提琴,看看什么对你有用。