每次用户登录时,我都会保存他的 ID。为了限制程序的传播,我希望每个用户最多拥有 3 台设备。此语句使用 HardwareID 填充 DB
SQL:
UPDATE license SET
hardwareID3 = CASE WHEN hardwareID1 IS NOT NULL AND
hardwareID2 IS NOT NULL AND
hardwareID3 IS NULL
THEN $hwid
ELSE hardwareID3 END,
hardwareID2 = CASE WHEN hardwareID1 IS NOT NULL AND
hardwareID2 IS NULL
THEN $hwid
ELSE hardwareID2 END,
hardwareID1 = CASE WHEN hardwareID1 IS NULL
THEN $hwid
ELSE hardwareID1 END
WHERE code = $lic AND $hwid NOT IN (COALESCE(hardwareID1,hardwareID2,hardwareID3, 0))
PHP:
$checkhwid = $VBPHP -> uphwid($hwid, $lic);
有2个问题:
当用户使用第二个 ID(例如“2”)登录 2 次时,值“2”也会写入 hardwareID3 列。
我想知道用户是否尝试使用第四个 ID 登录并返回错误。遗憾的是,我不能使用“真或假”ifs,因为当用户使用第一个 id 登录时,我会得到“真”的结果,如果他使用 ID 1 多次登录,我会得到假,因为声明没有改变任何东西(什么是正确的)。
我的想法不多了。提前致谢。