社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  DATABASE

MYSQL中的验证日期

BogdanM • 3 年前 • 1363 次点击  

我有个小问题。

如何做到这一点:客户机将数据添加到表单中 enter image description here

我想在MYSQL中检查现有数据是否由其他客户端设置。

所以,在这张照片中,你可以看到我不想成为什么样的人

enter image description here 我想给客户回话 请改天

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/131336
 
1363 次点击  
文章 [ 3 ]  |  最新文章 3 年前
BillJustin
Reply   •   1 楼
BillJustin    4 年前

您可以使用 date(d-m-Y) (d-m-y表示日-月-年格式),然后将其与数据库中的数据日期进行比较(如果它是由另一个客户端设置的)

Marcel
Reply   •   2 楼
Marcel    4 年前

当它属于日期时,使用php和mysql的日期和时间函数。

首先,使用 DATE 键入用于在数据库中存储日期的列。一个简短的例子,如何声明 日期 柱此示例包含 UNIQUE 日期限制 日期 列,因此值只能在此列中存储一次。

CREATE TABLE example (
    id INT AUTO_INCREMENT PRIMARY KEY,
    description VARCHAR(50) NOT NULL,
    start_date DATE NOT NULL UNIQUE,
);

请记住,这是一个示例表。现在,你可以在这个基础上做所有你要求的事情 日期

现在,您必须在PHP端处理日期格式。我猜日历应用程序发布的日期格式如下所示 d/m/Y .这种格式是可以接受的,但无论是在数据库中还是在php代码中,都不常用于处理日期。主要是格式 Y-m-d 被使用了。这种格式适合数据库的需要。

以下示例采用以下格式的日历日期的post参数: d\m\Y 并创建一个php DateTime 别提了。

$data = $_POST['date']; // your date in d/m/Y format like 20/05/2021
$date = DateTime::createFromFormat('d/m/Y');

if ($date === false) {
    throw new Exception('The given date is not in the expected format d/mY.');
}

// create the desired format for the database
$value = $date->format('Y-m-d');

// check for this date in your database
$sql = "SELECT id FROM example WHERE start_date = :start_date";
$statement = $pdo->prepare($sql);
$statement->bindValue(':start_date', $value);
$statement->execute();

// fetch a possible result
$row = $statement->fetch(PDO::FETCH_ASSOC);

// ongoing further processing
var_dump($row);

上面的例子使用 PDO 用于从mysql数据库中提取数据。无论使用什么数据库适配器,过程都是一样的。声明一个唯一的 日期 列,使用数据时间函数和类,并检查数据库中的现有日期。

PS:你不必从数据库中预先选择。另一种方法可能是在尝试插入具有现有日期值的数据集时获取错误。根据数据库表中日期列的唯一约束,insert将导致错误。你可以使用以下方法来避免这种行为 ON DUPLICATE KEY UPDATE sql查询或捕获数据库适配器周围带有try/catch块的insert语句上的错误(如果在这种情况下抛出异常)。

Ahmed Memon
Reply   •   3 楼
Ahmed Memon    4 年前

当客户机选择一个日期时,您应该进行一个ajax调用,并检查表中是否存在该日期。只需重置日期值,并为客户机选择另一个日期干杯。此外,当日期值为空时,还可以禁用表单提交按钮,以防止意外复制。

在Mysql端,将日期列设置为唯一,并在抛出消息时捕获它作为响应,并按照@DefinitelynotRafal上面的评论显示祝酒词。