首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >php -基于id更新数据库中的数据?

php -基于id更新数据库中的数据?
EN

Stack Overflow用户
提问于 2021-12-21 02:00:02
回答 3查看 208关注 0票数 1

我正在做一个让学生上课的项目,我想通过PHP更新数据库数据,同时运行一个SQL函数UPDATE,但是我希望能够根据数据的id来更新它。

这是我目前正在使用的代码。

代码语言:javascript
复制
<?php

require_once './dba.php';

$status = "";

if(isset($_POST['time_in'])) {

    $query = "INSERT INTO nameOfTable (datetime) VALUES (NOW())";

    $d = $conn->prepare($query);

    $d->execute();     

} elseif(isset($_POST['time_out'])) {
    $query = "UPDATE nameOfTable SET datetime = NOW() WHERE id = ? ";

    $d = $conn->prepare($query);

    $d->execute();     
} else {
    $status = "Can't time in!";
}

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2021-12-21 02:33:54

使用$conn->lastInsertId()获取当它们进入时分配的ID。将其保存在会话变量中,并在它们超时时使用它。

代码语言:javascript
复制
<?php

require_once './dba.php';

$status = "";

if(isset($_POST['time_in'])) {
    $query = "INSERT INTO nameOfTable (datetime) VALUES (NOW())";
    $d = $conn->prepare($query);
    $d->execute();     
    $_SESSION['clock_id'] = $conn->lastInsertId();
} elseif(isset($_POST['time_out'])) {
    if (!isset($_SESSION['clock_id'])) {
      $status = "You need to clock in first!";
    } else {
      $query = "UPDATE nameOfTable SET datetime = NOW() WHERE id = :id ";
      $d = $conn->prepare($query);
      $d->execute(['id' => $_SESSION['clock_id']]);   
    }
} else {
    $status = "Can't time in!";
}
票数 3
EN

Stack Overflow用户

发布于 2021-12-21 02:05:21

您必须记住准备查询并将参数绑定到它。

使用$id变量准备具有适当ID的查询。

在将ID传递给查询之前,请确保对会话进行身份验证,否则攻击者可以操纵此数据以获取任何他们想要的数据。

代码语言:javascript
复制
// Its helpful to create elements within the code to bind onto. :id is ours.
$query = "UPDATE nameOfTable SET datetime = NOW() WHERE id = :id ";

$d = $conn->prepare($query);

// Run the query & bind id to :id
$d->execute(['id' => $id]); 
票数 0
EN

Stack Overflow用户

发布于 2021-12-21 02:06:51

你试着更新

代码语言:javascript
复制
    $query = "UPDATE nameOfTable SET datetime = NOW() WHERE id = :id ";

    $d = $conn->prepare($query);

    $d->execute(['id' => $id ]);     
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70429894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档