这可能是一个愚蠢至极的问题。
我正在重新学习我的SQL和PHP代码。我从一个简单的表单和一个简单处理页面开始,页面上有以下代码
$firstName=$_GET['firstName'];
$sql = $pdo->prepare("insert into person (firstName) values (:firstName)");
$sql->bindParam(":firstName", $firstName);
$sql->execute();
我的问题是,当我更改表单页面或处理页面时(甚至缩进或更改单个文本字母),调试器会进行检查,INSERT
语句会"触发"。所以我在数据库中有几十个不需要的条目。
当我从表单中进行实际的submit
时,有没有一种方法可以让它"火"起来?很明显,我可以打破DB连接,但却破坏了我所处的学习曲线的整个点
感谢你的任何想法。
我发布了一个关于ghost变量的相关问题,但我认为应该将它们分开。PhpStorm中的Ghost变量。
使用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();
}