如何在编辑代码时阻止IDE(PhpStorm)写入数据库?还有鬼变量

时间:2016-01-01 20:59:42

标签: php mysql debugging insert phpstorm

这可能是一个非常愚蠢的问题。

我正在破解代码重新学习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.

1 个答案:

答案 0 :(得分:1)

使用 PHPStorm LiveEdit 插件时,您应该正确实施GETPOST次请求。

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();
}