这可能是一个非常愚蠢的问题。
我正在破解代码重新学习mySQL和PHP。我从一个简单的表单和一个简单的处理页面开始,其中包含以下代码。
$firstName=$_GET['firstName'];
$sql = $pdo->prepare("insert into person (firstName) values (:firstName)");
$sql->bindParam(":firstName", $firstName);
$sql->execute();
我的问题是,当我更改表单页面或处理页面(甚至缩进或更改单个文本字母)时,调试器会检查并INSERT
语句"触发"。所以我在数据库中有很多不需要的条目。
有没有办法让这个只是"火"当我从表单中做一个实际的submit
时?显然,我可以打破数据库连接,但却打败了我所处的学习曲线的全部要点。
感激任何想法。
我发布了关于ghost变量的相关问题,但我认为我应该将它们分开。 Ghost variables in PhpStorm.
答案 0 :(得分:1)
使用 PHPStorm 的 LiveEdit 插件时,您应该正确实施GET
和POST
次请求。
HTTP协议定义GET
- 类型请求是幂等的,而POST
可能有副作用。用简单的英语,这意味着GET
用于查看某些内容,而不更改它,而POST
用于更改内容。
例如,产品页面应使用GET
,因为页面刷新不应对后端进行任何更改,而结帐(保存订单,接受付款,减少休息)的表单应使用POST
在您的情况下,您应首先检查POST
:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
$firstName = $_POST['firstName'];
$sql = $pdo->prepare('insert into person (firstName) values (:firstName)');
$sql->bindParam(':firstName', $firstName);
$sql->execute();
}