首页 > 解决方案 > 每次重新加载页面时,我的 pgsql 都会向数据库中的表添加重复的行

问题描述

这是我的sql:

<?php
$db=pg_connect("host=localhost port=5432 dbname=postgres user=postgres password=preethy1970");
if (isset($_POST['signup'])) {
$query = "INSERT INTO users(user_name,user_password,user_email,user_phone,user_type) VALUES('$_POST[name1]','$_POST[password]','$_POST[email]','$_POST[phoneNumber]','$_POST[usertype]')";
$result=pg_query($query);
 }
?>

这是html:

<form method="post" action="signUp.php">
  <input id="submit-form" name="name1" placeholder="Name" type="text" required></input>
  <input id="submit-form" name="email" placeholder="Email id" type="email"></input>
  <input id="submit-form" name="phoneNumber" placeholder="Phone Number" type="tel"></input>
  <input id="submit-form" name="password" placeholder="Password" type="password"></input><br>
  <input name="usertype" type="radio" value="0">Student</input>
  <input name="usertype" type="radio" value="1">Faculty</input>
  <input name="usertype" type="radio" value="2">Alumni</input>
  <input id="submit-btn" type="submit" name="signup"  value="Sign Up"></input>
</form>

所以我会去我的注册页面并添加一些内容,这些内容将被添加到用户表中。当我重新加载页面时,即使字段为空且未单击提交按钮,先前的内容也会再次添加为新行。为什么会这样?

标签: phpdatabasepostgresql

解决方案


发生这种情况是因为您没有区分表单发布和页面加载。每次加载页面时,您都在调用 php 代码。如果只希望在提交表单时插入,则需要在返回 true 或有值$_POST["signup"]时检查并运行 SQL 代码if (isset($_POST['signup']))"submit"


推荐阅读