We use this "custom" SQl rather than the default in parent::__construct() // because of the defaults 'data' column type TEXT $dbName = $db->name(); $sql = "CREATE TABLE IF NOT EXISTS "; $sql .= $dbName ? $db->quotekey($dbName,FALSE) . "." : ""; $sql .= $db->quotekey($table,FALSE) . " ("; $sql .= $db->quotekey('session_id') . " VARCHAR(255),"; $sql .= $db->quotekey('data') . " MEDIUMTEXT,"; $sql .= $db->quotekey('ip') . " VARCHAR(45),"; $sql .= $db->quotekey('agent') . " VARCHAR(300),"; $sql .= $db->quotekey('stamp') . " INT(11),"; $sql .= "PRIMARY KEY (" . $db->quotekey('session_id') . ")"; $sql .= ");"; $db->exec($sql); } // $force = false for parent constructor -> skip default create SQL parent::__construct($db, $table, false, $onsuspect, $key); } }