在此处查看可能的加密功能列表:
http://dev.mysql.com/doc/refman/5.1/en/encryption-
functions.html
您可以创建更新触发器并在其中检查字段
accessable。像这样:
CREATE TRIGGER crypt_trg BEFORE UPDATe ON table FOR EACH ROWBEGIN IF new.accessable = 0 THEN SET new.msg := ENCRYPT(new.msg, 'key'); ELSE SET new.msg := DECRYPT(new.msg, 'key'); END IF;END;
您还可以使用以下查询更新表中的所有现有记录:
UPDATE table SET msg = IF(accessable = 0, ENCRYPT(msg, 'key'), DECRYPT(msg, 'key'));
因此,您可以为您的PHP代码选择记录:
SELECT msg_id, user_id, time, IF(accessable = 0, DECRYPT(msg, 'key'), msg) msgFROM table
UPD。 同样在这里是类似的问题:
MySQL加密列



