使用php中的变量更新mysql表

时间:2013-07-13 05:54:32

标签: php mysql

我有一个数据库,用以下变量存储医疗账单数据: dos,病人,原创,pmts,杰出。

我付款后,我希望能够从未付款中扣除付款并将其添加到pmts。

$pmt = $_POST[pmt];
$patient = $_POST[patient];
$dos = $_POST[dos];

$sql=("UPDATE medical 
SET pmts = pmts + $pmt
WHERE dos = $dos AND patient = $patient");

POST []来自HTML表单。

没有提供错误;但是,它没有更新现有的表格(医疗)。

5 个答案:

答案 0 :(得分:1)

pdo代码示例:

$pdo->prepare('UPDATE medical 
    SET pmts = pmts + :pmt
    WHERE dos = :dos AND patient = :patient')
->execute(array('pmt'=>$pmt,'dos'=>$dos,'patient'=>$patient));

答案 1 :(得分:0)

您没有用单引号括起您的文字值。

$sql="UPDATE medical 
SET pmts = pmts + $pmt
WHERE dos = '$dos' AND patient = '$patient'";

答案 2 :(得分:0)

它只是将查询存储在字符串中。使用函数处理数据库(PDOmysqli)以执行此查询。

您最好使用自己构建查询的预准备语句,或者您可以获得SQL注入

答案 3 :(得分:0)

我在代码中看到了一些错误。看看这段代码:

$pmt = $_POST['pmt'];
$patient = $_POST['patient'];
$dos = $_POST['dos'];

$sql=("UPDATE medical 
SET pmts = pmts + '$pmt'
WHERE dos = '$dos' AND patient = '$patient'");

答案 4 :(得分:0)

您要做的是参考MySQL中的一列。

$Qupdate=("UPDATE medical SET pmts = (pmts) + $pmt, out = (out) - $pmt WHERE dos = $dos AND patient = $patient");

在我看来,你只是期待数字输入,所以我也会在使用之前对$ _POST数据进行消毒。

$Qupdate=mysql_real_escape_string($Qupdate);

另外,因为使用的变量是数字,所以我认为你不需要将它们用引号括起来。但如果你这样做(不使用数字)。然后你想要转义引号(\“)

$Qupdate=("UPDATE medical SET pmts = (pmts) + \"$pmt\", out = (out) - \"$pmt\" WHERE dos = \"$dos\" AND patient = \"$patient\"");