我正在管理网上商店。每个产品都有自己的费用计算(1%+ 0.10€/ 1%+ 0.20€/ 1%+ 0.30€等)。我现在无法猜测什么是费用,因为我们遵循复杂的计算并且无法将它们直接集成到PHP类中。
我希望,在我的后端,能够添加公式并将它们分配给每个产品。 示例:对于产品A,我想创建费用计算" X / 100 + 0.10"其中X是产品价格。 如何将这种公式存储在SQL行中?安全吗?如何告诉PHP将此行用作:
$fee = X/100 + 0.1;
谢谢!
答案 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循环中$ $计算包含需要评估的'22 .1 / 100 +1'之类的东西 - 你可以通过多种方式实现这一点 - 这篇SO帖子解释了它:PHP function to evaluate string like "2-1" as arithmetic 2-1=1
这只是单向的,有很多 - 有一个小提琴,看看哪些对你有用。