sql - php -> sql - 验证唯一的表条目
问题描述
我有一个关于唯一表 ID 的问题/问题。我从 PHP -> SQL 传递数据并使用 $id 作为主键:
$id = new DateTime();
$id = $id -> format("dmYHis");
// example - 15102021102640 (15.10.2021-10:26:40)
恐怕用户将来可能会生成相同的 Id,这可能会使应用程序或数据库崩溃。验证相关 SQL 插入语句中的唯一性是否是一种好习惯?像这样,请暂时忽略 SQL 注入:
BEGIN TRANSACTION [trans1]
BEGIN TRY
INSERT INTO table1 (id) VALUES ('$id');
// pseudo code
// validate uniqueness
// while $id exist do $id + 1 else continue
// validate uniqueness
COMMIT TRANSACTION [trans1];
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION [trans1]
END CATCH";
我不确定在此 SQL 语句期间进行验证检查是否会解决安全问题。
解决方案
推荐阅读
- docker - 将 docker container exec 命令转换为 docker-compose yml 使用
- javascript - 如何使用 date-fns 复制函数
- javascript - 在选项卡中动态添加活动类 ajax 和 jQuery
- makefile - 编译器对 make 表现异常
- python - 下载文件时出现网页抓取问题 - 链接自动下载 PDF 文件,但我无法正确保存
- c - 用 C 语言从二进制文件中读取位
- firebase - 使用 logEvent 时无法在 Firebase 分析中获取项目数组
- javascript - 使用 Selenium 和 Python 单击 JavaScript 类型按钮“喜欢”
- php - Symfony 显示分析器栏仅供管理员使用
- flutter - 如何验证时间范围以使结束日期不能早于今天?