我有这个PHP代码,当我尝试单击是按钮并检查数据库时。值保持不变。有什么我做错了吗?我也检查我的SQL查询,它似乎工作正常,但当我将其合并到PHP代码中。它不再起作用了吗?
<?php
require 'database.php';
$id = 0;
if ( !empty($_GET['gpx_field_id'])) {
$id = $_REQUEST['gpx_field_id'];
}
if ( !empty($_POST)) {
// keep track post values
$id = $_POST['gpx_field_id'];
// delete data
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "UPDATE field_info SET verify = '1' WHERE gpx_field_id = ? ";
$q = $pdo->prepare($sql);
$q->execute(array($id));
Database::disconnect();
header("Location: index.php");
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<link href="assets/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<script src="assets/bootsrap/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="span10 offset1">
<div class="row">
<h3>Verify a Field</h3>
</div>
<form class="form-horizontal" action="verify.php" method="post">
<input type="hidden" name="gpx_field_id" value="<?php echo $id;?>"/>
<p class="alert alert-error">Are you sure to verify this field ?</p>
<div class="form-actions">
<button type="submit" class="btn btn-danger">Yes</button>
<a class="btn btn-danger" href="index.php">No</a>
</div>
</form>
</div>
</div> <!-- /container -->
</body>
</html>
答案 0 :(得分:0)
这里我假设您的查询工作正常 请更改您的PHP代码如下...
<?php
require 'database.php';
$id = 0;
if ( !empty($_GET['gpx_field_id'])) {
$id = $_REQUEST['gpx_field_id'];
}
if ( !empty($_POST)) {
try {
$pdo = Database::connect();
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$sql = "UPDATE field_info SET verify = '1' WHERE gpx_field_id IN :id ";
$q = $pdo->prepare($sql);
$q->execute(array($id));
Database::disconnect();
header("Location: index.php");
}
catch(PDOException $e) {
echo $e->getMessage();
}
}
?>
希望它会对你有所帮助。
答案 1 :(得分:0)
您在顶部指定了$id = 0
,但它永远不会更新为某些“真实”版本。值。因此,表单填充
<input type="hidden" name="gpx_field_id" value="0"/>
因此gpx_field_id
始终保持0
。然后,您的查询将使用WHERE gpx_field_id = 0
更新所有行。最有可能的是,这些行不存在......
在将$id
插入表单之前,您需要为<!DOCTYPE html>
获取正确的值。
另一方面,由于您使用的是html5(<input type="hidden" ... >
),因此应省略输入的结束标记。改为写meta
,省略正斜杠,就像使用head部分中的link
和<xsl:choose>
<xsl:when test="XXXXXX='XXX'">
<p>If we may be of further assistance, please </p>
<html><body><a href="http://example.com/">contact us</a></body></html>
Sincerely,
</xsl:when>
<xsl:otherwise>
test
</xsl:otherwise>
</xsl:choose>
标记一样。