Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
gilour
/
vendor
/
desarrolla2
/
cache
/
src
/
Exception
:
mysqli.md
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
# Mysqli Cache to a [MySQL database](https://www.mysql.com/) using the [mysqli](http://php.net/manual/en/book.mysqli.php) PHP extension. You must pass a `mysqli` connection object to the constructor. ``` php <?php use Desarrolla2\Cache\Mysqli as MysqliCache; $db = new mysqli('localhost'); $cache = new MysqliCache($db); ``` ### Options | name | type | default | | | --------- | ---- | ------- | ------------------------------------- | | initialize | bool | true | Enable auto-initialize | | ttl | int | null | Maximum time to live in seconds | | prefix | string | "" | Key prefix | #### Initialize option If `initialize` is enabled, the cache implementation will automatically create a [scheduled event](https://dev.mysql.com/doc/refman/5.7/en/event-scheduler.html). ``` DELIMITER ;; CREATE TABLE IF NOT EXISTS `cache` (`key` VARCHAR(255), `value` TEXT, `ttl` INT UNSIGNED, PRIMARY KEY (`key`));; CREATE EVENT `apply_ttl_cache` ON SCHEDULE 1 HOUR DO BEGIN DELETE FROM `cache` WHERE `ttl` < NOW(); END;; ``` In production it's better to disable auto-initialization and create the event explicitly when setting up the database. This prevents a `CREATE TABLE` and `CREATE EVENT` query on each request. ### Packer By default the [`SerializePacker`](../packers/serialize.md) is used.