Pati klase ($db ir mysqli savienojums)<?php
    class Messages
        {
            function create($errorName)
                {
                    $_SESSION['errors'][$errorName] = true;
                }

            function show()
                {
                    global $db;
                    if (isset($_SESSION['errors']))
                        {
                            foreach ($_SESSION['errors'] as $errorName => $status)
                                {
                                    $messageHandler = $db->query("SELECT * FROM errors WHERE textid = '$errorName'");
                                    if ($messageHandler->num_rows === 0)
                                        {
                                            //do nothing
                                        }
                                    else
                                        {
                                            $messagePrint = $messageHandler->fetch_object();
                                            $message = $messagePrint->contents;
                                        }

                                        echo $message;
                                        $this->dismiss();
                                        
                                }
                        }
                }
                
            function dismiss()
                {
                    foreach ($_SESSION['errors'] as $errorName => $status)
                        {
                            $_SESSION['errors'] = false;
                        }
                }
        }

Brīdī, kad vajag izdrukāt kādu ziņojumu, vai vienalga ko, izmantojam

Messages::create('nosaukums');

Pašu kļūdas tekstu, izvilks no datubāzes. Šis tikai ierakstīs sesijā, ka ziņojumam ir jābūt. Tālāk, lapas daļā, kurā gribam rādīt ziņojumus, liekam

Messages::show();

Ziņojums gan tiks parādīts tikai vienu reload pēc Messages::create(), bet to var atrisināt ieliekot redirect'a headeri.

 

SQL: 

SET NAMES utf8;
SET foreign_key_checks = 0;
SET time_zone = '-05:00';
SET sql_mode = 'NO_AUTO_VALUE_ON_ZERO';

DROP TABLE IF EXISTS `errors`;
CREATE TABLE `errors` (
  `textid` text COLLATE utf8_latvian_ci NOT NULL,
  `contents` text COLLATE utf8_latvian_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_latvian_ci;

Laboja SJohnson, labots 1x