【问题标题】:PHP / Save math formula in table rowPHP /在表格行中保存数学公式
【发布时间】:2016-02-07 00:18:58
【问题描述】:

我正在管理一家在线商店。每个产品都有自己的费用计算(1% + 0.10€ / 1% + 0.20€ / 1% + 0.30€ 等)。我现在无法猜测什么是费用,因为我们遵循复杂的计算并且无法将它们直接集成到 PHP 类中。

我希望在我的后端能够添加公式并将它们分配给每个产品。 示例:对于产品 A,我想创建费用计算“X/100+0.10”,其中 X 是产品价格。 如何将这种公式存储在 SQL 行中?安全吗?如何告诉 PHP 将此行用作:

    $fee = X/100 + 0.1;

谢谢!

【问题讨论】:

    标签: php mysql sql math


    【解决方案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 function to evaluate string like "2-1" as arithmetic 2-1=1

    这只是一种方法,有很多方法 - 有一个小提琴,看看什么对你有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多