संभावित एन्क्रिप्शन कार्यों की सूची के लिए यहां देखें:
http://dev.mysql.com/doc/refman /5.1/hi/encryption-functions.html
आप अपडेट के लिए ट्रिगर बना सकते हैं और वहां accessable
फ़ील्ड की जांच कर सकते हैं . कुछ ऐसा:
CREATE TRIGGER crypt_trg BEFORE UPDATE ON table FOR EACH ROW
BEGIN
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) msg
FROM table
यूपीडी. यहाँ भी इसी तरह का प्रश्न था: