Не могу понять, в чем проблема с mysql? [требует правки]

333
28 января 2017, 12:30

Есть класс SQLHelper, но ничего неработает. не могу понять в чем дело.

class SQLHelper {
/**
*   http://phpfaq.ru/pdo
*/
private $link;
function __construct(){ 
    $dsn = "mysql:host=".DBHOST.";dbname=".DBNAME.";charset=".DBCHARSET;
    $opt = array(
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false // Выключает режим эмуляции! проблемы с LIMIT ?,?
    );
    try {
        $this->link = new PDO($dsn, DBUSER, DBPASS, $opt);
        throw new Exception("Error Processing Request", 4);
    } catch (Exception $e) {
        die("Error! " . $e->getMessage());
    }
}
public function getCon() { return $this->link; }
private $errors = array();
private $result = NULL;
// метод выполнения запроса SQL !!!
public function queryExec($sql, $data=false){
    $sql1 = "SELECT * FROM `testTables`";
    $stmt = $this->getCon()->prepare($sql1);
    $stmt->execute()->fetch();
    if (!$data)
        return $stmt->execute();
    else
        return $stmt->execute($data);
    /*
        НЕ УДАЛЯТЬ ---------------------------------------------------------
        Запросы можно использовать вот так.................!
        # just exec
        $this->queryExec($sql);
        $this->queryExec($sql, $data);
        # all rows
        $result = $this->queryExec($sql, $data);
        foreach ($result as $row) echo $row['name'];
        # one row
        $row = $this->queryExec($sql, $data)->fetch();
        # one cell
        $count = $this->queryExec($sql)->fetchColumn(); // можно использовать для подсчета ячеекы
        # column
        $ids = $this->queryExec($sql)->fetchAll(PDO::FETCH_COLUMN);
        НЕ УДАЛЯТЬ ---------------------------------------------------------
    */
}

}

Answer 1

Скорее всего у вас не передаются DBHOST, DBNAME, DBCHARSET.

Answer 2

Вообщем нашел. результат у меня такой получился.

class SQLHelper {
/**
*   http://phpfaq.ru/pdo
*/
private $link;
private $debugger;
function __construct(){ 
    $this->debugger = new Debugger();
    require_once ('config.php');
    $dsn = "mysql:host=".DBHOST.";dbname=".DBNAME.";charset=".DBCHARSET;
    $opt = array(
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false // Выключает режим эмуляции! проблемы с LIMIT ?,?
    );
    try {
        $this->link = new PDO($dsn, DBUSER, DBPASS, $opt);
        if (!$this->link) throw new Exception("i can't connect to database!", 4);
    } catch (Exception $e) {
        die("Error! " . $e->getMessage());
    }
}
public function getCon() { return $this->link; }
private $errors = array();
private $result = NULL;
// метод выполнения запроса SQL !!!
public function getInformation($sql, $data=false){
    $stmt = $this->getCon()->prepare($sql);
    try {
        $check = !$data ? $stmt->execute() : $stmt->execute($data);
        if (!$check) throw new Exception("SQL Request not executed!", 1);
        $row = $stmt->fetchAll();
    } catch (Exception $e) {
        echo $e->getMessage();
    }
    $debugger->preview($row);
}

}

READ ALSO
Редактирование WooCommerce Product таблицу?

Редактирование WooCommerce Product таблицу?

Хочу вынести возможность управления порядка товара, где идут метки, категория, дата и тд

705
помогите составить запрос выборки из mysql

помогите составить запрос выборки из mysql

Всем доброго настроения! Я учусь, не пинайте ) Помогите составить запрос mysql

344
Проблема со SwiftMailer

Проблема со SwiftMailer

На сайте использую SwiftMailerЭто второй проект, где я работаю с ним

359
День недели по дате

День недели по дате

Есть массив с датами такого типа 2016-12-15,2016-12-12

389