MyQEE\Server\Table::_driverSet PHP Method

_driverSet() protected method

protected _driverSet ( $k, $v )
    protected function _driverSet($k, $v)
    {
        switch ($this->_type) {
            case 'mysql':
                foreach ($v as &$tmp) {
                    $tmp = "'" . $this->_driver()->real_escape_string($tmp) . "'";
                }
                unset($tmp);
                $k = $this->_driver()->real_escape_string($k);
                $sql = 'INSERT INTO `' . $this->_link['table'] . '`, (`_key`, `' . implode('`, `', array_keys($v)) . '`) VALUES (\'' . $k . '\', ' . implode(', ', $v) . ')';
                $sql .= 'ON DUPLICATE KEY UPDATE ';
                foreach ($v as $kk => $vv) {
                    $sql .= "`{$kk}` = {$vv}, ";
                }
                $sql = rtrim($sql, ' ,');
                # INSERT INTO table (a,b,c) VALUES (1,2,3) ON DUPLICATE KEY UPDATE c = 1;
                $rs = $this->_driver()->query($sql);
                return $rs ? true : false;
            case 'sqlite':
                break;
            case 'redis':
            case 'ssdb':
                return $this->_driver()->hSet($this->_link['path'], $k, serialize(parent::get($k)));
            case 'rocksdb':
                if (!$this->_driver) {
                    $this->_driver = new \RocksDB($this->_link['path']);
                }
                return $this->_driver->set($k, serialize($v));
        }
        return false;
    }