CREATE TABLE `hashtable` (
`key` VARCHAR(32),
`value` VARCHAR(65536),
PRIMARY KEY (`key`)
) ENGINE=MEMORY DEFAULT CHARSET=utf8 COLLATE utf8_bin;
<?php class HashTable { // MySQL protected $connect; // protected $table; /** * * @param resource MySQL $connect * @param string $table */ public function __construct($connect, $table) { $this->connect = $connect; $this->table = $table; } /** * * @param string $key * @param string $val * @return boolean */ public function set($key, $val) { $key = md5($key); $val = serialize($val); $val = mysql_real_escape_string($val, $this->connect); $query = 'REPLACE INTO `'.$this->table.'` (`key`, `value`) '; $query .= 'VALUES ("'.$key.'", "'.$val.'")'; return mysql_query($query, $this->connect) ? true : false; } /** * * @param string $key * @return void */ public function get($key) { $key = md5($key); $query = 'SELECT `value` FROM `'.$this->table.'` WHERE `key`="'.$key.'"'; $result = mysql_query($query, $this->connect); if ($result) { $row = mysql_fetch_row($result); return unserialize($row[0]); } else { return false; } } /** * * @param string $key * @return boolean */ public function check($key) { $key = md5($key); $query = 'SELECT COUNT(*) FROM `'.$this->table.'` WHERE `key`="'.$key.'"'; $result = mysql_query($query, $this->connect); $row = mysql_fecth_row($result); return (bool)$row[0]; } /** * * @param string $key * @return boolean */ public function delete($key) { $key = md5($key); $query = 'DELETE FROM `'.$this->table.'` WHERE `key`="'.$key.'"'; return mysql_query($query, $this->connect) ? true : false; } }
<?php // $link = mysql_connect('localhost'); mysql_select_db('test', $link); mysql_set_charset('utf8', $link); $storage = new HashTable($link, 'hashtable'); // $storage->set('name', 'Vasya'); // var_dump($storage->check('name')); // var_dump($storage->get('name')); // $storage->delete('name'); // var_dump($storage->check('name'));
Source: https://habr.com/ru/post/108457/
All Articles