<?php
        class CMySQL {
            // variables
            var $sDbName;
            var $sDbUser;
            var $sDbPass;
            var $vLink;
            // constructor
            public function CMySQL(){
                $this->engine = 'mysql';
                $this->host = 'Localhost';
                $this->database = 'api';
                $this->user = 'root';
                $this->pass = '';
                $dns = $this->engine.':dbname='.$this->database.";host=".$this->host;
                 $this->vLink = $dns;
            }
            // return one value result
            function getOne($query, $index = 0) {
                if (! $query)
                    return false;
                $res = mysql_query($query);
                $arr_res = array();
                if ($res && mysql_num_rows($res))
                    $arr_res = mysql_fetch_array($res);
                if (count($arr_res))
                    return $arr_res[$index];
                else
                    return false;
            }
            // executing sql
            function res($query, $error_checking = true) {
                if(!$query)
                    return false;
                $res = $this->vLink;
                if (!$res)
                    $this->error('Database query error', false, $query);
                return $res;
            }
            // return table of records as result in pairs
            function getPairs($query, $sFieldKey, $sFieldValue, $arr_type = MYSQL_ASSOC) {
                if (! $query)
                    return array();
                $res = $this->res($query);
                $arr_res = array();
                if ($res) {
                    while ($row = mysql_fetch_array($res, MYSQL_ASSOC)) {
                        $arr_res[$row[$sFieldKey]] = $row[$sFieldValue];
                    }
                    mysql_free_result($res);
                }
                return $arr_res;
            }
            // return table of records as result
            function getAll($query, $arr_type = MYSQL_ASSOC) {
                if (! $query)
                    return array();
                if ($arr_type != MYSQL_ASSOC && $arr_type != MYSQL_NUM && $arr_type != MYSQL_BOTH)
                    $arr_type = MYSQL_ASSOC;
                $res = $this->res($query);
                $arr_res = array();
                if ($res) {
                    while ($row = mysql_fetch_array($res, $arr_type))
                        $arr_res[] = $row;
                    mysql_free_result($res);
                }
                return $arr_res;
            }
            // return one row result
            function getRow($query, $arr_type = MYSQL_ASSOC) {
                if(!$query)
                    return array();
                if($arr_type != MYSQL_ASSOC && $arr_type != MYSQL_NUM && $arr_type != MYSQL_BOTH)
                    $arr_type = MYSQL_ASSOC;
                $res = $this->res ($query);
                $arr_res = array();
                if($res && mysql_num_rows($res)) {
                    $arr_res = mysql_fetch_array($res, $arr_type);
                    mysql_free_result($res);
                }
                return $arr_res;
            }
            // escape
            function escape($s) {
                return mysql_real_escape_string($s);
            }
            // get last id
            function lastId() {
                return mysql_insert_id($this->vLink);
            }
            // display errors
            function error($text, $isForceErrorChecking = false, $sSqlQuery = '') {
                echo $text; exit;
            }
        }
        $GLOBALS['MySQL'] = new CMySQL();
        ?>
I'm learning creating APIs using PHP and wish to convert "mysql_fetch_array and mysql_free_result" to PDO and allow multiple parameters as given. The error am getting for the above code is
mysql_fetch_array() expects parameter 1 to be resource, string given
and
mysql_free_result() expects parameter 1 to be resource, string given
How can I work around this code I came across with..