首页 > 解决方案 > 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 语句期间进行验证检查是否会解决安全问题。

标签: sqlsql-server

解决方案


推荐阅读