А как ты относишся к MySQLi

1. Евгений (19.12.2011 / 23:01)
Каково ваше отношение к MySQLi ?
Что лучше использовать, MySQL или MySQLi ? (по вашему мнению)
Какие преимущества/недостатки ?

2. jozze (19.12.2011 / 23:07)
много тем уже было. юзай поиск.

3. halsoft (19.12.2011 / 23:26)
Я бы сначала посоветовал почитать определения в вики или где-нибудь еще, вот для начала:
http://ru.wikipedia.org/wiki/MySQLi

i - improved, то есть улучшенное. Делайте выводы.

4. Александр (19.12.2011 / 23:42)
разница примерно такая:
Ты используешь программу версии 1.12 и ждешь обновлений. Ждешь 1.13 или 1.14.
И тут включаешь комп и получаешь версию 2.0 или даже 3.0 smile примерно так по возможностям

5. Артур (20.12.2011 / 01:07)
Переход с процедурного на объектно ориентированный подход в программировании это очень облегчает. Собственно наличие всего появившегося интерфейс взаимодействия в MySQL, его объектной ориентации и инкапсуляции очень облегчает реализацию. Выкинул кучу адаптеров

6. iNeeXT (20.12.2011 / 01:41)
Нейтрально отношусь почему-то. smile

7. Артур (20.12.2011 / 03:00)
лучше вообще смотреть в сторону PDO

8. Артур (26.12.2011 / 12:32)
9. ZiGR, нет. в PDO не только 1 этот +

9. Слава (26.12.2011 / 12:53)
Bashka (20 Декабря 2011 / 01:07)
Переход с процедурного на объектно ориентированный подход в программировании это очень облегчает. Собственно наличие всего появившегося интерфейс взаимодействия в MySQL, его объектной ориентации и инкапсуляции очень облегчает реализацию. Выкинул кучу адаптеров
там и оо и процедурный подход использовать можно

10. Александр (26.12.2011 / 13:46)
единственное преимущество пдо на мой взгляд это связка prepare - execute без костылей типа bind_param - fetch

11. Sep (26.12.2011 / 14:27)
MySQLi это улучшеный MySQL, ответ очевиден

12. Артур (27.12.2011 / 19:09)
12. ZiGR, мне не нравицца просто XD нервируют названия методов в mysqli с использованием _ ГГ)))

13. Саня (27.12.2011 / 19:27)
положительно

14. Ant0ha (27.12.2011 / 19:39)
Имхо, в грамотно организованной работе с БД, программист не должен обращать внимания на то, как реализована эта работа. mysql, mysqli, pdo, все это должно быть реализованно ввиде драйверов класса для взаимодействия с БД более высокого уровня абстракции.

15. Артур (27.12.2011 / 22:09)
Ты хотел сказать - должно быть реализовано с использованием класса (точнее интерфейса, абстрактного класса) на более высоком уровне абстракции - или - с использованием фассада - ? Вообще MySQLi на мой взгляд это то, как не надо программировать в ОО векторе

16. Ant0ha (27.12.2011 / 22:49)
По типу обычной фабрики (первый вариант). Делается класс-фабрика для взаимодействия с БД, а так же интерфейс, на основе которого создаются драйвера (mysqli, pdo и тд).
Но суть даже не в этом, а в том чтобы использовать готовые реализации от граматных разработчиков, к примеру, это все реализовано в кохана из коробки и не нужно париться на чем же строится взаимодействие с базой.

17. Ant0ha (27.12.2011 / 23:02)
Можно запросто сменить драйвер mysql на драйвер pdo исправив всего одно слово в конфиге базы данных (соответственно mysql -> pdo), вот и все дела.

18. ramzes (27.12.2011 / 23:05)
Ant0ha (27 Декабря 2011 / 22:49)
По типу обычной фабрики (первый вариант). Делается класс-фабрика для взаимодействия с БД, а так же интерфейс, на основе которого создаются драйвера (mysqli, pdo и тд).
Но суть даже не в этом, а в том чтобы использовать готовые реализации от граматных разработчиков, к примеру, это все реализовано в кохана из коробки и не нужно париться на чем же строится взаимодействие с базой.
простите, не удержался :-[
продолжайте

19. Ant0ha (27.12.2011 / 23:07)
с мобилки набирал, простительно =)

20. Артур (28.12.2011 / 22:50)
Эм, я могу ошибаться, но мне кажется что вы не понимаете что такое фабрика

21. Дима (28.12.2011 / 22:53)
Мое мнение нейтральное.

22. Ant0ha (29.12.2011 / 10:43)
23. Bashka, ну, поясни что же не так).
З.Ы. вот как раз таки твои сомнения и предполагают твоё не понимание паттерна.

23. Юрий (29.12.2011 / 15:44)
Хорошо отношусь.

24. Артур (29.12.2011 / 23:53)
Мм, покину я сайт с подобными правилами лучше. Удачи

25. ramzes (29.12.2011 / 23:59)
28. Bashka, не обращай внимания, модератор видимо сам плохо понимает что означает этот пункт правил
________
в) Не одобряются попытки обратить внимание на низкий уровень знаний какого-либо участника сайта. Все когда-то не знали простых вещей.
________
Не пришей к пи...е рукав тут, простите за выражение

26. Ant0ha (30.12.2011 / 11:54)
28. Bashka, проще обидеться на "не хорошего модератора" чем обосновать свои высказывания?)

27. Дмитрий (30.12.2011 / 12:54)
проще понтунуться, видя что апонент уходит;)

28. Ant0ha (30.12.2011 / 13:03)
31. ПьяНый Ангел, да, пусть приходит, проблема в чем? не я же убегаю от спора и не я же этот спор затеял
З.Ы. у него онлайн всё это время висит и хочет в личке поговорить.

29. Ant0ha (30.12.2011 / 13:33)
Решили в личке, человек просто не понял о чем речь, теперь уладили.

Простой пример реализации способа, о котором я говорил выше, выглядит примерно так:

<?php

class DB {
    public static function factory($driver)
    {
       return new $driver;
    }
}

interface DB_Interface {}

class DB_MySQL implements DB_Interface {}
class DB_PDO implements DB_Interface {}
class DB_MySQLi implements DB_Interface {}

$db = new DB::factory('DB_MySQL');


30. ramzes (30.12.2011 / 13:58)
ZiGR (29 Декабря 2011 / 15:00)
21. ramzes, а вы, товарищ, правила читали?
Указывание на незнание чего-либо запрещено правилами. Предупреждение вам.
Ни чего подобного
Просто забавная опечатка именно в таком слове.
Проще надо быть, речи о знаниях и прочем не было

31. Ant0ha (30.12.2011 / 14:00)
дополню пост 34:

new перед DB::factory() - лишнее

Kohana реализует этот паттерн еще удобней. Вместо интерфейсов используется абстрактный класс фабрика, в котором определяются общие методы и плюс в том, что некоторые из них реализуются (не абстрактные методы), но их можно переопределить в самих драйверах.

т.е. делается примерно так:

<?php
abstract class DB { 
    public static function factory($driver) 
    { 
       return new $driver; 
    } 
} 

class DB_MySQL extends DB {}
class DB_PDO extends DB {} 
class DB_MySQLi extends DB {} 

$db = DB::factory('DB_MySQL');


32. Артур (30.12.2011 / 17:56)
Да, решили вопрос частично. Сегодня решим полностью )

33. Ant0ha (30.12.2011 / 21:07)
Ок, отписывай только сюда.

34. Жень4ик (10.01.2012 / 19:02)
Вот какой у меня вопрос назрел... Сел я читать учебник по MySQL , почитал чуть-чуть, и вспомнил про эту тему... Вы мне скажите, то щас MySQL изучать? Или подождать?

35. JustZero (10.01.2012 / 19:19)
хах, разница там не большая) точнее ее я например не замечаю)

36. Артур (12.01.2012 / 00:27)
Чего ждать?

37. ramzes (12.01.2012 / 01:48)
SiT (10 Января 2012 / 19:02)
Вот какой у меня вопрос назрел... Сел я читать учебник по MySQL , почитал чуть-чуть, и вспомнил про эту тему... Вы мне скажите, то щас MySQL изучать? Или подождать?
Подожди конечно, когда вязать надоест, переходи на базы данных))

38. Don (30.01.2012 / 13:19)
SiT (10 Января 2012 / 19:02)
Вот какой у меня вопрос назрел... Сел я читать учебник по MySQL , почитал чуть-чуть, и вспомнил про эту тему... Вы мне скажите, то щас MySQL изучать? Или подождать?
разницы особо нету)) можно учить и mysql тоже самое практически, там их немного пару функций лишь, главное знать sql ) а там разберешься.

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