PHP/在表格行中保存数学公式

标签 php mysql sql math

我正在管理一家在线商店。每个产品都有自己的费用计算(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 function to evaluate string like "2-1" as arithmetic 2-1=1

这只是一种方法,还有很多方法 - 摆弄一下,看看哪种方法适合您。

关于PHP/在表格行中保存数学公式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35242991/

相关文章:

php - 函数内部变量

php - 1 秒连接到 mySQL

mysql - 捕捉马甲木偶

PHP echo 里面的 echo

python - Python中的内存数据库

mysql - CASE 语句不起作用

php - 在远程数据库中插入 134675 个值的最快方法

javascript - 将 JavaScript 显示为文件中的可编辑代码

PHP INSERT INTO MySQL 不起作用?

javascript - 将数据从 .txt 文件发送到 JavaScript 数组