更新不工作PHP MYSQL CRUD

时间:2016-05-11 08:56:53

标签: php mysql crud

我有这个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>

2 个答案:

答案 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> 标记一样。