php - 每次重新加载页面时,我的 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>
所以我会去我的注册页面并添加一些内容,这些内容将被添加到用户表中。当我重新加载页面时,即使字段为空且未单击提交按钮,先前的内容也会再次添加为新行。为什么会这样?
解决方案
发生这种情况是因为您没有区分表单发布和页面加载。每次加载页面时,您都在调用 php 代码。如果只希望在提交表单时插入,则需要在返回 true 或有值$_POST["signup"]
时检查并运行 SQL 代码if (isset($_POST['signup']))
"submit"
推荐阅读
- python - 在 Python 中创建 JOB 文件
- postgresql - 触发器将从多行构建一行
- apache-spark - Tez VS Spark - 巨大的性能差异
- rabbitmq - 在 RabbitMQ 集群中将 ha-mode 与 queue-master-locator 结合使用
- javascript - 基于数组构建的 JavaScript 对象
- android - Textview textColor to drawable 随机产生错误的颜色
- php - Symfony - Orocommerce:缺少表“t0”的 FROM 子句条目
- http - 什么会导致 url 中的斜线被切割?
- android - 在 JobIntentService 中将 setInterruptIfStopped 设置为 true 有什么意义?
- amazon-web-services - 如何在 API Gateway 中对每个用户进行速率限制?