public function updatePDO($table, array $data, array $where = array())
    {

        if (count($data) === 0) {
            return false;
        }
        $q = "UPDATE `$table` SET ";

        foreach ($data as $key => $val) {
            if (null !== $val) {
                $q .= "`$key`=?, ";
            }
        }
        $q = rtrim($q, ', ') . ' WHERE ';

        foreach ($where as $key => $val) {
            if (null !== $val) {
                $q .= "`$key`=? AND ";
            }
        }
        $q = rtrim($q, 'AND ') . ' ;';

        try {
            $this->_queryId = self::$_linkId->prepare($q);

            $i = 1;
            foreach ($data as $key => $val) {
                if (null !== $val) {
                    $type = $this->getPDOConstantType($val);
                    $this->_queryId->bindValue($i, $val, $type);
                    ++$i;
                }
            }


            foreach ($where as $key => $val) {
                $type = $this->getPDOConstantType($val);
                $this->_queryId->bindValue($i, $val, $type);
                ++$i;
            }
            return $this->_queryId->execute();
        } catch (PDOException $e) {
            $this->_error = $e->getMessage();
            return false;
        }
    }