Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> mysqli, почeму не работает? 
V
    Опции темы
Pokoinik
Дата 16.6.2008, 14:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 17.3.2007
Где: /dev/null

Репутация: 2
Всего: 3



Пишу класс для работы с mysqli
Код

    class DatabaseMysqli extends mysqli {
        private static $instance = false;
        private $ticker = null;
        private $log = null;
        private $debug = null;
        public static function getInstance() {
            if (self::$instance === false) self::$instance = new DatabaseMysqli();
            return self::$instance;
        }
        
        public function __construct() {
            $config = DConfig::getInstance();
            
            if ( ! class_exists( 'mysqli' ) ) throw new Exception( 'Mysqli extension is not exist' );
            
            parent::__construct( $config->db_host, $config->db_user, $config->db_pass, $config->db_table );
            if ( $this->errno ) {
                throw new MySQLiConnectException( sprintf("Can't connect to MySQL Server. Errorcode: %s\n", $this->error ) );
            }
            
            parent::query("SET NAMES 'utf8'"); // we work in UTF-8
            $this->ticker = 0;
            $this->log = array();
            if ($config->debug) $this->debug = true;
        }
    }
    
    class MySQLiConnectException extends Exception {}
    
include( '../etc/cms.conf.php' );
try {
    $a = DatabaseMysqli::getInstance();
}
catch ( MySQLiConnectException $e ) {
    echo $e->getMessage();
}

Если указать неправильный логин и пароль к бд, на сколько я понимаю должно произойти MySQLiConnectException,
но ничего не происходит. Вываливаются стандартные варнинги, но мы сейчас не о них.
Почему поле errno остается пустым?
Если верить документации http://www.php.net/manual/en/mysqli.errno.php
в нем должен быть код ошибки?
 smile  smile 


--------------------
ICQ: 490-993
Существует только 10 типов людей: те, которые понимают двоичную систему, и которые ее не понимают!!!
Опасайтесь людей верующих, ибо у них есть боги, которые им все прощают.

Делай или не делай! Никаких попробую!
Йода (Yoda), мастер-джедай
PM MAIL ICQ   Вверх
DizelGenerator
Дата 16.6.2008, 15:10 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 15.6.2008

Репутация: 1
Всего: 1



1. Вы допустили ошибку в реализации паттерна "Синглтон" - конструктор должен быть приватным + определите private 
Код

function __clone(){}


2. Так как происходит ошибка при подключении, переменная $this еще не была полностью инициализирована как объект mysqli, поэтому получить свойство этого объекта вы не можете. Используйте mysqli_errno().
PM MAIL   Вверх
Pokoinik
Дата 16.6.2008, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 283
Регистрация: 17.3.2007
Где: /dev/null

Репутация: 2
Всего: 3



DizelGenerator, спасибо...

Добавлено @ 15:22
только не mysqli_errno(), a mysqli_connect_errno()

Это сообщение отредактировал(а) Pokoinik - 16.6.2008, 15:22


--------------------
ICQ: 490-993
Существует только 10 типов людей: те, которые понимают двоичную систему, и которые ее не понимают!!!
Опасайтесь людей верующих, ибо у них есть боги, которые им все прощают.

Делай или не делай! Никаких попробую!
Йода (Yoda), мастер-джедай
PM MAIL ICQ   Вверх
DizelGenerator
Дата 16.6.2008, 15:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 47
Регистрация: 15.6.2008

Репутация: 1
Всего: 1



ну собсна да =)
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0420 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.