【问题标题】:Compare Variable to SQL Column in PHP将变量与 PHP 中的 SQL 列进行比较
【发布时间】:2016-05-18 01:18:54
【问题描述】:

我想将变量与表中的列进行比较,这样如果条件正确,就可以执行查询。
这是我的 php 代码,我应该如何更改它?

$money_to_send = $_POST["money_to_send "];
$num_ban = $_POST["num_ban"];
if ($money_to_send < solde_ban){
$statement = "UPDATE ban SET solde_ban = (solde_ban - '$money_to_send') where num_ban = '$num_ban'";

mysqli_query($con, $statement) or die (mysqli_error($con));

$response = array();

$response["success"] = true;
else {$response = array();

$response["success"] = true;}

echo json_encode($response);

如果有人能帮忙,谢谢。

【问题讨论】:

  • "but it doesn't work" 的描述不准确。请你能详细说明你的期望和你得到了什么以及它是如何不起作用的......
  • 我想比较 $money_to_send 和 solde_ban 列。但即使我的变量值大于solde_ban 列,我得到的只是成功响应。
  • 你能告诉我们更多代码吗?好像少了点什么。你从哪里得到了solde_ban。可能您需要另一个查询来获取 $num_ban 的数据并设置 $solde_ban。有意义吗?
  • 你真的是说,如果solde_ban ???
  • 轻度修正语法和格式

标签: php android mysql json


【解决方案1】:

每当if 语句似乎“总是计算为 TRUE”或“总是计算为 FALSE”时,您应该查看表达式以及您在其中使用的任何变量的值。

在这种情况下$money_to_send & solde_ban

看起来有几件事不对:

1) 当您设置$money_to_send 的值时,您在键名$_POST["money_to_send "] 的末尾有一个空格因此,请检查以确保您在变量中输入了一个值。设置后立即执行var_dump($money_to_send);。尾随空格可能导致值设置为null

2) sold_ban - 你需要设置这个值!你还需要一个$ 在它前面。 'if' 语句当前正在比较 null

3) 另外,您在 if 声明中缺少结束 }

工作代码可能如下所示:

$money_to_send = $_POST["money_to_send"];
$solde_ban = 555; //some value..!

$num_ban = $_POST["num_ban"];

if ($money_to_send < $solde_ban){
    $statement = "UPDATE ban SET solde_ban = (solde_ban - '$money_to_send') where num_ban = '$num_ban'";
    mysqli_query($con, $statement) or die (mysqli_error($con));
    $response = array();
    $response["success"] = true;
}
else {
    $response = array();
    $response["success"] = true;
}

echo json_encode($response);

【讨论】:

    猜你喜欢
    • 2016-08-26
    • 1970-01-01
    • 1970-01-01
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-21
    相关资源
    最近更新 更多