【问题标题】:autofill fill database field by 50% based on another database field's data根据另一个数据库字段的数据自动填充数据库字段 50%
【发布时间】:2017-01-27 14:37:06
【问题描述】:

我想将一个字段更新为数据库中另一个字段的 50% 表格

field1 (40,000) 从提交的表单中获取值

field2 (#)所以这个 field2 将更新 field1 中的 50%,在这种情况下是 60000

请任何可以帮助使用 mysql 查询的机构。下面是插入字段一的代码

<?php
session_start(); {

//Include database connection details
include('../../dbconnect.php');

$amount =  strip_tags($_POST['someid']);

//$days = str_replace('/', '-',$_POST['endtime']);

if ($amount == "" ) {
    $_SESSION['ph'] = "<center><div class='alert alert-danger' role='alert'>Please Fill The Fields</div></center>";
    header("location: PH.php");
    exit;
}

$sql = "INSERT INTO transactions (amount) VALUES ('$amount')";

if (mysqli_query($conn, $sql)) {
    $_SESSION['ph'] ="<center><div class='alert alert-success' role='alert'>Request Accepted.</div></center>";
   header("location: PH.php");
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);
}
?>

【问题讨论】:

  • 那么这个表中还有哪个字段要更新为($amount + ($amount*0.5))
  • 另一种解决方案是在您的 mysql 数据库中创建一个触发器,它会自动填充您的字段。但根据我的经验,触发器在特定情况下并不像听起来那么好。所以你应该知道你在做什么。但是为了完成,值得考虑一下。

标签: php mysql


【解决方案1】:
$field1amount = $_POST['formid'];
$field2amount = $field1amount + ($field1amount*0.5);

$sql = "INSERT INTO transactions (Field1,Field2) VALUES ('$field1amount','$field2amount');

代码也容易受到 sql 注入的影响 不要使用 mysql_ 或 mysqli_ 使用 pdo 和准备好的语句。

【讨论】:

  • 只有使用准备好的、参数化的和绑定的查询才能防止 SQL 注入。即使使用 PDO 运行,您的查询也容易受到 SQL 注入的攻击。 mysqli_PDO 都可以运行 Prepared、Parameterised 和 Bound 查询
  • 正如我所说的 pdo 和准备好的语句 :) 我希望 mysqli 早日被弃用,而不是迟早会支持 pdo 作为唯一的访问层
  • 谣言不是这样开始的,我没有发现任何暗示
  • 没有建议,但我可以看到它的到来,事实上它几乎很明显它会随着时间的推移而发生,但无论哪种方式,这个讨论都超出了问题的范围,无论如何我总是推荐 pdo 而不是 mysqli。
猜你喜欢
  • 2016-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多