私信  •  关注

Marcel

Marcel 最近回复了
2 年前
回复了 Marcel 创建的主题 » 在python中读取从请求发送到套接字的数据

在服务器站点上,您需要实现https(超文本传输协议)。

或者你用烧瓶。

3 年前
回复了 Marcel 创建的主题 » MYSQL中的验证日期

当它属于日期时,使用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语句上的错误(如果在这种情况下抛出异常)。