基于HTML表单输入在sql中移动记录
Posted
技术标签:
【中文标题】基于HTML表单输入在sql中移动记录【英文标题】:Moving records in sql based on HTML form input 【发布时间】:2018-05-22 10:24:28 【问题描述】:我正在尝试根据表单的输入将记录移动到数据库中,但似乎遇到了问题。我已经尝试了以下,但它没有在数据库上执行命令。它需要读入决策值并根据决策执行查询。有人可以在这里发现问题吗?我已经在 SQL Server 中运行了查询,它可以正常工作。
html 表单代码:
<!--Other Form-->
<center>
<div class="container">
<form action="dLG.php" onsubmit="return confirm('Are you sure you wish to delete ?');">
<div class="row">
<div class="col-25">
<label for="License Group ID">Enter the License Group ID that you wish to delete</label>
</div>
<div class="col-75">
<input type="number" name="LicenseGroupID" placeholder="LicenseGroupID">
</div>
</div>
<br>
<div class="row">
<input type="submit" value="Delete License Group">
</div>
</form>
</div>
</center>
php:
<html>
<?php
$serverName = "x";
$options = array( "UID" => "x", "PWD" => "x", "Database" => "x");
$conn = sqlsrv_connect($serverName, $options);
if( $conn === false )
echo "Could not connect.\n";
die( print_r( sqlsrv_errors(), true));
$License_Group_ID = $_POST['LicenseGroupID'];
$query = "DELETE FROM dbo.tbl_license_group
OUTPUT
deleted.License_Group_ID,
deleted.Vendor_Name,
deleted.License_Version,
deleted.Edition,
deleted.Operating_System,
deleted.Quantity
INTO dbo.tbl_license_group_delete(License_Group_ID, Vendor_Name, License_Version,Edition,Quantity)
WHERE License_Group_ID = '$License_Group_ID'; " ;
$params1 = array($License_Group_ID);
$result = sqlsrv_query($conn,$query,$params1);
sqlsrv_close($conn);
?>
</html>
【问题讨论】:
如果您能提供错误堆栈,这将是一个真正的帮助。 抱歉我是新手,当我提交表单时,它会移动到 php 文件但不与数据库交互。参数显示在 url 中,这是我注意到的与我拥有的类似功能不同的东西。这是你要找的吗? 【参考方案1】:默认表单方法是 GET,而不是 POST。如果您想使用 POST(在这种情况下应该使用),请使用:
<form action=".." method="post" onsubmit="...">
...
</form>
第二个问题是 $query 字符串。它应该使用这样的参数:
$query = "DELETE ... WHERE License_Group_ID = ?; " ;
PS:使用 PDO 比使用 sqlsrv_* 函数更好。
【讨论】:
以上是关于基于HTML表单输入在sql中移动记录的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 html 表单更新基于 django 模型的表单(具有选择选项)记录
将html表单中的数据插入sql数据库(html,php,sql)时未保存输入的值