将mysqli类转换为pdo

时间:2018-11-18 16:13:37

标签: php mysql pdo

嗨,我正在尝试将此mysqli类转换为pdo,这是该类的mysqli版本,我似乎无法使pdo版本正常工作,如稍后在我的帖子中解释的

    class rb_mysqli extends rbDatabase {
    function query($query){
        $query = $this->connection->query($query);
        //$error = mysqli_error($this->connection); if(!empty($error)){ echo $error . "<br />Query that errored: ".$this->lastquery; } 
        return $query;
    }
    function real_escape_string($str)
    {
        $result = $this->connection->real_escape_string($str);
        return $result;
    }
    function fetch_assoc($query){
        $result = mysqli_fetch_assoc($query);
        return $result;
    }
    function fetch_row($query){
        $result = mysqli_fetch_row($query);
        return $result;
    }
    function fetch_array($result){
        $result = mysqli_fetch_array($result);
        return $result;
    }
    function num_rows($query){
        $result = mysqli_num_rows($query);


        return $result;
    }

    function result($res,$row=0,$col=0){ 
    $numrows = mysqli_num_rows($res); 
    if ($numrows && $row <= ($numrows-1) && $row >=0){
        mysqli_data_seek($res,$row);
        $resrow = (is_numeric($col)) ? mysqli_fetch_row($res) : mysqli_fetch_assoc($res);
        if (isset($resrow[$col])){
            return $resrow[$col];

        }
    }
    return false;
}

    function insert_id($query){
        return $this->connection->insert_id($query);
    }
}     

这是我尝试在pdo中执行的操作,但是由于某种原因,它无法执行与mysqli版本相同的操作,有人可以帮助我解决这个问题吗?

    class my_pdo extends rbDatabase {
    function query($query){
        $query = $this->connection->prepare($query);
        $query->execute();
        return $query;
    }
    function real_escape_string($str)
    {
        return $str;
    }
    function fetch_assoc($query){
        $result = $query->fetchAll(PDO::FETCH_ASSOC);
        return $result;
    }
    function fetch_row($query){
        $result = $query->fetch(PDO::FETCH_ASSOC);
        return $result;
    }
    function fetch_array($result){
            $result = $result->fetch(PDO::FETCH_ASSOC);
        return $result;
    }
    function num_rows($query){
$this->connection->setAttribute(PDO::ATTR_STRINGIFY_FETCHES, false);
$this->connection->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$this->connection->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE,PDO::FETCH_ASSOC);
$this->connection->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$result = $query->fetch(PDO::FETCH_NUM);
        var_dump($result[0]);

return $result[0];



    }

    function result($res,$row=0,$col=0){ 

        $result = $res->fetch();
        return $result[$col];
    }

    function insert_id($query){
        return $this->connection->lastInsertId($query);
    }
}    

0 个答案:

没有答案