首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >根据表单输入更新数据库

根据表单输入更新数据库
EN

Stack Overflow用户
提问于 2018-05-22 16:53:19
回答 1查看 39关注 0票数 0

我正在尝试根据表单的输入对数据库执行更新,但遇到了一个问题。我已经尝试了下面的命令,但它没有在数据库上执行命令。它需要读入一个用于决策的值,并根据decision.Can执行查询。有人发现了这里的问题吗?

html表单代码:

代码语言:javascript
运行
复制
<center><div class="container">
<form action="update.php" onsubmit="return confirm('Are you sure you  wish to update ?');">
<div class="row">
  <div class="col-25">
    <label for="decision">Would you like to add or subtract from current quantity?</label>
  </div>
  <div class="col-75">
    <select id="decision" name="decision">
      <option value="add">Add</option>
      <option value="subtract">Subtract</option>
    </select>
  </div>
</div>
<br>
<div class="row">
  <div class="col-25">
    <label for="License Group ID">License Group ID</label>
  </div>
  <div class="col-75">
    <input type="number" name="LicenseGroupID" placeholder="LicenseGroupID">
  </div>
</div>
<br>
<div class="row">
  <div class="col-25">
    <label for="Quantity">Quantity</label>
  </div>
  <div class="col-75">
    <input type="number" name="Quantity" placeholder="Quantity">
  </div>
</div>
<br>
<div class="row">
  <input type="submit" value="Update">
</div>

update.php

代码语言:javascript
运行
复制
<html>
 <?php 
$serverName = "tcp:xxx,1433";
$options = array(  "UID" => "aalicensemanager",  "PWD" => "xxx",   "Database" => "AALicenseManager");
$conn = sqlsrv_connect($serverName, $options);

if( $conn === false )
 {
 echo "Could not connect.\n";
 die( print_r( sqlsrv_errors(), true));
 }  
$decision = $_POST['decision'];
$LicenseGroupID = $_POST['LicenseGroupID'];
$Quantity = $_POST['Quantity'];


$query = " CASE WHEN $decision = 'add'
       THEN
      UPDATE dbo.[tbl_license_group]
      SET Quantity = Quantity + '$Quantity'
      WHERE License_Group_ID = '$LicenseGroupID'

      ELSE WHEN $decision = 'subtract'
      THEN
      UPDATE dbo.[tbl_license_group]
      SET Quantity = Quantity - '$Quantity'
      WHERE License_Group_ID = '$LicenseGroupID'" ;

      $params1 = array($decision,$LicenseGroupID,$Quantity);                       
      $result = sqlsrv_query($conn,$query,$params1);

      sqlsrv_close($conn);
  ?>
   </html>
EN

Stack Overflow用户

发布于 2018-05-22 17:00:21

您的update语句应该类似于....

代码语言:javascript
运行
复制
UPDATE dbo.[tbl_license_group]
SET Quantity = CASE 
                    WHEN $decision = 'add'      THEN  Quantity + '$Quantity'
                    WHEN $decision = 'subtract' THEN  Quantity - '$Quantity'
               END
WHERE License_Group_ID = '$LicenseGroupID'

您需要将case语句放入update语句中,而不是将update语句放入case语句中。

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50463551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档