RotorCMS PDO MySQL (Обращение к Vantuz'у)

1. Максим (13.08.2010 / 15:58)
<?php
class pdo_mysql extends sql_utils {
    static $queryes = 0;
    static $time_parse;
    static $query_list;
    static $link;

    public function __construct()
    {
        try {
            self::$link = new PDO_('mysql:host=' . DB_HOST . ';port=' . DB_PORT . ';dbname=' . DB_NAME, DB_USER, DB_PASS);
            self::$link->exec('SET CHARACTER SET utf8');
            self::$link->exec('SET NAMES utf8');
        } 
        catch (PDOException $e) {
            die('Ошибка!!!<br />: ' . $e->getMessage());
        } 
    } 
	
	public static function num_rows($link)
	{
        try {
			$result = $link->rowCount();
        } 
        catch (PDOException $e) {
            die('Ошибка!!!<br />: ' . $e->getMessage());
        } 
		return $result;
	} 

	public static function fetch_assoc($link)
	{
        try {
			$result = $link->fetch();
        } 
        catch (PDOException $e) {
            die('Ошибка!!!<br />: ' . $e->getMessage());
        } 
		return $result;
	}

	public static function query($query)
	{
        self::$queryes++;
        $time_before = array_sum(explode(chr(32), microtime()));

        try {
			$result = self::$link->query($query);
        } 
        catch (PDOException $e) {
            die('Ошибка!!!<br />: ' . $e->getMessage());
        } 

        $tme_last = array_sum(explode(chr(32), microtime()));

        self::$time_parse += $tme_last - $time_before;
        self::$query_list[] = array('time' => round($tme_last - $time_before, 4),
            'query' => $query,
            'num' => self::$queryes);

		return $result;
	}

    public static function queryes()
    {
        return self::$queryes;
    } 

	public static function result($link, $column)
	{
		return $link->fetchColumn($column);
	}
} 

define('DB_DRVR', 'pdo_mysql'); // драйвер

static $database;

if (!$database) {
	eval('class DB extends ' . DB_DRVR . ' {}');
	$database = new DB();
}
?>

Я знал что есть спец тема "Вопрос - Ответ по RotorCMS", но всё-же решил создать отдельную тему. Читал про RotorCMS, говорят что у половины говнохостов не загружено расшитение pdo_mysql, так почему бы не переработать класс DB и сам проект под класс который описан выше? если нет поддержки pdo_mysql, то можно с лёгкостью заменить его классом с набором mysql функций!!!!!!
Думаю это было бы оч хорошей албтернативой!!! Как вы на это смотрите? Пожалуйста отпишитесь...

2. Максим (13.08.2010 / 16:01)
Ну это сугубо лично моё мнение. Функций этого класса для обращения к базе мне вполне хватает мне вполне с лихвой хватает...

3. Вантуз-мен (13.08.2010 / 16:02)
1. SPunk, да ты прав, вполне возможно, у меня была идея такая

4. Максим (13.08.2010 / 16:09)
3. Vantuz, Кстате не тока с mysql можно так сделать но и с другими базами.

Лучше задуматься об этом сейчас пока "не нарисовали" кучу модов и апдейтов к двигу.

Кстате двиг замечательный!!!
Ещёб шаблонизатор "влупить" и вообще офигенно получется!


Ой, чёта меня понесло....)

5. Михаил (13.08.2010 / 19:40)
class pdo_mysql extends sql_utils {са
...
sql_utils это что за класс?

6. ramzes (13.08.2010 / 19:56)
проще сделать автоопределение PDO;;MySQLi

7. Артур (13.08.2010 / 20:02)
Омг. Как по мне - бред. Из-за каких-то единиц говнохостов такую фигню пороть.

8. iSor0k (13.08.2010 / 20:11)
Кстати в форуме phpBB перед установкой можно выбирать тип SQLite MySQL MySQLi и пр.
Если не затруднительно то не плохо было бы реализовать.

9. Максим (13.08.2010 / 20:50)
5. Flyd, упс) sql_utils забыл стереть. Я этот класс sql_utils расширял.....

10. Максим (13.08.2010 / 20:55)
iSor_есть чо7 (13 Августа 2010 / 20:11)
Кстати в форуме phpBB перед установкой можно выбирать тип SQLite MySQL MySQLi и пр.

6. ramzes, Так ведь эти классы надо для начала реализовать, чтоб про выбор базы или автовыбор. В каждых классах бд немного разные методы...

11. ramzes (13.08.2010 / 21:01)
это и так понятно

12. Максим (13.08.2010 / 21:05)
11. ramzes, Дык я о чём здесь толдычил??? а? умник...

13. Nu3oN (13.08.2010 / 21:06)
имхо, фигня все это!
погонишься за двумя зайцами от двоих п***ы получишь!

14. Артур (13.08.2010 / 21:08)
//^ЗАЯЦ знает D

15. ramzes (13.08.2010 / 21:08)
смотря кто пишет)) ни чего сложного инициализировать небольшой класс с переходными методами для адаптации методов под другой класс
#14 ыыы +1

16. Nu3oN (13.08.2010 / 21:10)
Fuelen (13 Августа 2010 / 21:08)
//^ЗАЯЦ знает D
Ыыыы... дружище, когда в аське появишься?
ramzes (13 Августа 2010 / 21:08)
смотря кто пишет)) ни чего сложного инициализировать небольшой класс с переходными методами для адаптации методов под другой класс
Это просто незачем smile

17. Nu3oN (13.08.2010 / 21:13)
На крайний случай зачем авто-определение?
При установке выдать варианты и показать какие поддерживаются хостингом! ну можно еще для тех кто в этих делах не очень шарит написать что лучше и почему!

18. Максим (13.08.2010 / 21:15)
15. ramzes, ну неужто...

19. ramzes (13.08.2010 / 21:15)
17 потому что это проще и дуракам не дает косячить с выбором.
в общем суть изложил, а дальше пофиг))

20. Максим (13.08.2010 / 21:17)
факи по базам они пусть сами ищут и читаю))

21. Nu3oN (13.08.2010 / 21:18)
Ладно короче... не буду лезть в разговор взрослых дядек, а то потом виноватым выйду D

22. Максим (13.08.2010 / 21:19)
19. ramzes, автоопределение - типо первый класс попавшийся в массиве списка загруженных классов?!) Лучше предоставить право выбора

23. Nu3oN (13.08.2010 / 21:21)
SPunk (13 Августа 2010 / 21:19)
19. ramzes, автоопределение - типо первы попавшийся в массиве списка загруженных классов?!)
почему же? сделать такую фень типа, если есть 1 то выбираем его, если нет первого проверяем второе, второе есть выбираем его, если же нет первого и второго выбираем третье...
---
Все можно сделать, приложив к этому голову =)

24. Максим (13.08.2010 / 21:32)
23. Nu3oN, согласен. В этом нет абсолютно ничего сложного...
---
Ибо 0011 0101 0111 - это электронный бог цифровой индустрии)))

25. ramzes (13.08.2010 / 23:04)
22, движок написан с применением pdo так нафига запускать его с mysqli если pdo в наличии?
это если его нет или глючит то можно альтернативный класс запускать

26. Артур (14.08.2010 / 09:05)
PDO будет в пхп 6 в стандартной постановке. Мускули же нет. Вот qpik отключил мускули (и у меня сайт не работает теперь sad ), но PDO есть smile
Моё личное мнение - использование mysqli - шаг назад. PDO более функционален, есть возможность обработки исключений..
16, когда ноута заберу в чёла одного, т.е. сегодня)

27. Олег (14.08.2010 / 11:59)
Fuelen, исключение это самодостаточная реализация в php, которую можно приенять везде, в том числе и в MySQLi

28. ктулху (14.08.2010 / 15:07)
iSor_есть чо7 (13 Августа 2010 / 22:11)
Кстати в форуме phpBB перед установкой можно выбирать тип SQLite MySQL MySQLi и пр.
Если не затруднительно то не плохо было бы реализовать.
PDO для того и сделано по идее. реализуй, Вантуз сразу сказал что это возможно.

29. ктулху (14.08.2010 / 15:08)
Fuelen (14 Августа 2010 / 11:05)
PDO будет в пхп 6 в стандартной постановке. Мускули же нет. Вот qpik отключил мускули (и у меня сайт не работает теперь sad ), но PDO есть smile
Моё личное мнение - использование mysqli - шаг назад. PDO более функционален, есть возможность обработки исключений..
16, когда ноута заберу в чёла одного, т.е. сегодня)
Они и phpinfo запретили как потенциально опасную функцию D

30. ктулху (14.08.2010 / 15:40)
Извиняюсь за предыдущий пост, перепутал с другим хостингом (на xwab это обсуждалось)

31. Артур (14.08.2010 / 22:49)
27. Aligan, на сколько я знаю mysqli не бросает исключения. Там вместо класса обработки исключений класс MySQLi_Warning ;/

URL: https://visavi.net/topics/12579