[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: проблема с PDO
altairo2087
Столкнулся с странной проблемой в классе Authoriz в конце объявляется PDO. Так вот после метода "prepare" не выполняется $stmt->execute(). ни фетчи, ничто не выводит. запрос нормальный.

print_r выводит:
PDOStatement Object ( [queryString] => SELECT * FROM users WHERE uname='человек' AND upass='пароль' AND ustatus=1 )

код

<?php
//уровень ошибок
error_reporting(E_ALL);

//
header("Content-type: text/html;charset=utf8");

//класс подключения Mysql через PDO в Singleton
class DB {
    const DB_HOST = "localhost";
    const DB_USER = "root";
    const DB_PASS = "12345678";
    const DB_NAME = "orders";
    static private $_instance = null;
    private function __construct() {}
    private function __clone() {}
    public static function getInstance() {
        if(!self::$_instance)
            self::$_instance = new PDO("mysql:host=".self::DB_HOST.';dbname='.self::DB_NAME, self::DB_USER, self::DB_PASS);
            self::$_instance->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
        return self::$_instance;
    }
}




class Authoriz {
    private $_user;
    private $_pass;
    private $_ip;
    private $_db;
    private $_ustatus = 1;
    function __construct($user,$pass,$ip) {
        $this->_user = trim(strip_tags($user));
        $this->_pass = trim(strip_tags($pass));
        $this->_ip = $ip;
    }
    function auth() {
            /*if ($this->_ip == "127.0.0.1") {
            // Авторизация по ip
            echo "Добрый день Администратор<br>";
            } else {*/

            // Обычная авторизация
            //подключаемся к базе
            echo $this->_user.$this->_pass;
            $sql = "SELECT * FROM users WHERE uname='".$this->_user."' AND upass='".$this->_pass."' AND ustatus=1";
            try {
                $this->_db = DB::getInstance();
                $stmt = $this->_db->prepare($sql);
                $stmt->execute();
                print_r($stmt);
            }catch (PDOException $e){ echo $e->getMessage();}

    }
}



$_REQUEST['user_name'] = "человек";
$_REQUEST['user_pass'] = "пароль";

// Определяем ip
$user_ip = null;
if (isset($_SERVER['REMOTE_ADDR'])) $user_ip = $_SERVER['REMOTE_ADDR'];
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) $user_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];

//
$authoriz = new Authoriz($_REQUEST['user_name'],$_REQUEST['user_pass'],$user_ip);
$authoriz->auth();
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.