HOME


Mini Shell 1.0
DIR: /home/otwalrll/.trash/wp-content/plugins/wpdatatables/source/
Upload File :
Current File : /home/otwalrll/.trash/wp-content/plugins/wpdatatables/source/class.sql.pdo.php
<?php

defined('ABSPATH') or die('Access denied.');

/**
 * PDO abstract layer for the WPDataTables module
 *
 * */
class PDOSql {

    private $vendor;
    private $link;
    private $error;

    /**
     * Constructor
     * @param string $dsn
     * @param string $user
     * @param string $password
     * @throws \Exception
     */
    public function __construct( $vendor, $dsn, $user, $password ) {
        $this->vendor = $vendor;

        try {
            $this->link = new PDO ($dsn,"$user","$password");
        } catch (PDOException $e) {
            throw new Exception('There was a problem with your SQL connection - ' .((is_admin()) ? $e->getMessage() : 'Please contact the administrator'));
        }
    }

    /**
     * Determines if the connection is established
     */
    public function isConnected(){
        return !empty( $this->link );
    }

    /**
     * Do a query without expected result (insert, update, delete)
     * separated by comma
     * @return boolean
     */
    public function doQuery() {
        if ($result = $this->prepare(func_get_args())) {
            return true;
        }

        return false;
    }

    /**
     * Get a single field value from query result
     * separated by comma
     * @return boolean Get
     */
    public function getField() {
        if ($stmt = $this->prepare(func_get_args())) {
            $row = $stmt->fetch(PDO::FETCH_NUM);

            return $row[0];
        }

        return false;
    }

    /**
     * Get a single row from query result
     * separated by comma
     * @return boolean
     */
    public function getRow() {
        if ($stmt = $this->prepare(func_get_args())) {
            $row = $stmt->fetch(PDO::FETCH_ASSOC);
            return $row;
        }

        return false;
    }

    /**
     * Get all results of a query as an indexed array
     *
     * @return array|bool
     */
    public function getArray() {
        $tmp = null;

        if ($stmt = $this->prepare(func_get_args())) {
            return $stmt->fetchAll(PDO::FETCH_NUM);
        }

        return false;
    }

    /**
     * Get all results of a query as an assoc array
     * separated by comma
     * @return array|bool
     */
    public function getAssoc() {
        if ($stmt = $this->prepare(func_get_args())) {
            return $stmt->fetchAll(PDO::FETCH_ASSOC);
        }

        return false;
    }

    /**
     * Returns the last PDO error
     */
    public function getLastError(){
        return $this->error;
    }

    /**
     * Prepares the query and the parameters passed
     */
    private function prepare($properties) {
        $this->error = '';
        $stmt = null;

        try {
            $stmt = $this->link->query($properties[0]);
        } catch(PDOException $e) {
            $this->error = $e->getMessage();
            return false;
        }

        return $stmt;
    }

    public function getLastInsertId(){
        return $this->link->lastInsertId();
    }

}