1

我这里有这段代码。它成功地将数据插入数据库,但每次我刷新浏览器时,我都会从浏览器收到此消息“您正在查找的页面使用了您输入的信息。返回该页面可能会导致您重复执行的任何操作。您想要接着说?” 当我按继续时,它会插入我插入的相同数据。谁能告诉我怎么了?我刚开始学习PDO。

<?php
$host = "localhost";
$user = "root";
$db = "pdotest2";
$pass = "";

$dbase = new PDO("mysql:host=" . $host . ";dbname=" . $db, $user, $pass);

if(isset($_POST['firstname']))
{
$fname = $_POST['firstname'];
$lname = $_POST['lastname'];
$sql = "INSERT INTO tbldata(firstname, lastname) VALUES(:firstname, :lastname);";
$query = $dbase->prepare($sql);
$results = $query->execute(array(
    ':firstname' => $fname,
    ':lastname' => $lname
));
}
?>
<!DOCTYPE html>
<html>
<head>

</head>
<body>
<form action="" method="POST">
First Name: <input type="text" name="firstname" required>
<br>
Last Name: <input type="text" name="lastname" required>
<br>
<input type="submit" value="submit" name="submit">
</form>
<?php
    $query1 = $dbase->query("SELECT * FROM tbldata");
    echo "<table border=1 cellpadding=5>";
    while($row = $query1->fetch(PDO::FETCH_ASSOC)){
        echo "<tr>";
        echo "<td>" . $row['id'] . "</td>";
        echo "<td>" . $row['firstname'] . "</td>";
        echo "<td>" . $row['lastname'] . "</td>";
        echo "</tr>";
    }
    echo "</table>";
?>
    </body>
    </html>

每一个帮助将不胜感激。

4

1 回答 1

2

出现此消息是因为您填写了表格,然后单击“提交”。在提交后您正在查看的那个页面上,您点击了刷新按钮。当您点击刷新时,浏览器“重新提交”您之前提交的内容是标准的。

如果您不希望它“重新提交”,请输入 URL 并按 Enter。这样就没有提交数据。只有当您单击提交之后,它才会发送更多数据并插入另一行。

一个简单的方法是点击地址栏(地址应该已经存在)并按回车键。这将重新加载页面而不重新提交数据。

于 2013-07-05T15:40:01.890 回答