gpt4 book ai didi

php - 如何防止IDE(PhpStorm)在编辑代码时写入数据库?还有一个幽灵变量

转载 作者:行者123 更新时间:2023-11-29 11:48:19 24 4
gpt4 key购买 nike

这可能是一个极其愚蠢的问题。

我正在重新学习 mySQL 和 PHP 代码。我从一个简单的表单和一个简单的处理页面开始,其中包含以下代码。

$firstName=$_GET['firstName'];
$sql = $pdo->prepare("insert into person (firstName) values (:firstName)");
$sql->bindParam(":firstName", $firstName);
$sql->execute();

我的问题是,当我更改表单页面或处理页面(甚至缩进或更改文本的单个字母)时,调试器会检查并“触发”INSERT 语句。所以我在数据库中有几十个不需要的条目。

当我从表单中进行实际的提交时,有没有办法让它“触发”?显然,我可以断开数据库连接,但会破坏我正在学习的整个学习曲线。

感谢任何想法。

我正在发布一个关于 Ghost 变量的相关问题,但我认为我应该将它们分开。 Ghost variables in PhpStorm.

最佳答案

使用PHPStormLiveEdit插件时,您应该注意正确实现GETPOST请求。

HTTP 协议(protocol)将 GET 类型的请求定义为幂等的,而 POST 可能会产生副作用。用简单的英语来说,这意味着 GET 用于查看某些内容而不更改它,而 POST 用于更改某些内容。

例如,产品页面应使用 GET,因为页面刷新不应在后端进行任何更改,而结账表单(保存订单、接受付款、减少休息)应使用 发布

在您的情况下,您应该首先检查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();
}

关于php - 如何防止IDE(PhpStorm)在编辑代码时写入数据库?还有一个幽灵变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34559995/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com