mysql 输入选中复选框时的日期

twh00eeo  于 2022-11-28  发布在  Mysql
关注(0)|答案(1)|浏览(114)

我试图使它,当复选框被选中它把今天的日期在数据库中,我尝试使用时间戳,但它把它放在所有的空间列,我是一个初学者在php我做的代码是这样的:

<?php
            if (isset($_POST['Abate'])){
              $Abate="Sim";
              $data=time();
              $DiaAbate= date("Y/m/d", $data);
          }
          else{
              $Abate="Nao";
              $DiaAbate="";
          }
          ?>
v8wbuo2f

v8wbuo2f1#

您没有包括您的表结构(CREATE TABLE语句),所以我假设您有一个DATE列用于存储$DiaAbate。我还假设提交日期的格式为22/11/2022。如果您对POSTed日期值使用不同的格式,则需要更改传递到DateTime::createFromFormat()的格式字符串。
您当前的代码容易受到SQL Injection的攻击,因为您将静态字符串与用户输入组合在一起时没有进行任何验证。

if (isset($_POST['Abate'])){
    $Abate = 'Sim';
    // create a date from the posted date string adn format it
    // see https://www.php.net/manual/en/datetime.createfromformat.php
    $DiaAbate = DateTime::createFromFormat('d/m/Y', $_POST['DiaAbate'])->format('Y-m-d');
} else {
    $Abate = 'Nao';
    $DiaAbate = null;
}

$query = 'INSERT INTO pc (Abate, DiaAbate) VALUES (?, ?)';
$query_run = mysqli_execute_query($con, $query, [$Abate, $DiaAbate]);

if ($query_run) {
    $_SESSION['status'] = 'Inserted Succesfully';
    header('Location: indexx.php');
} else {
    $_SESSION['status'] = 'Not Inserted';
    header('Location: indexx.php');
}

相关问题