Нужен стандартный class php для работы с БД
99 сообщений
#16 лет назад
Ищу стандартный class php для работы с Postgress, Mysql. Путевого пока ничего не нашел, может здесь кто подскажет?
589 сообщений
#16 лет назад
А что такое class php ? MySQL и PostgreSQL настолько разные, что обращаться к ним, без потери производительности, можно только с учётом их специфики. PDO какой-нибудь...
51 сообщение
#16 лет назад
DBSimple вроде и с Postgress работает.Сам работал с DBSimple с MySQL - нравится, но написано что и с Postgress.
Хотя когда сложная табличка с кучей полей, двадцаток подряд идущих placeholder'ов напрягают бывает... поэтому конечно есть некоторые мысли и наработки как и чего там улучшить ) но все это интим ))
3240 сообщений
#16 лет назад
PDO - стандартный, то есть являющийся PHP extension-ом начиная с PHP 5.1.Остальные - нестандартные, то есть не являющиеся частью PHP, а лишь сторонними либами (хотя, впрочем, удобными).
Я часто использую PDO, но если критична высокая производительность, то все же предпочитаю свое решение на базе extensions mysql или mysqli, или если нужно работать с другой СУБД, то соответственно другие стандартные расширения. Конечно, если нужно поддерживать работу с разными БД, нужно абстрагировать низкоуровневый доступ к БД.
1410 сообщений
#16 лет назад
tvv, не совсем понимаю некоторые моменты: 1) PDO на то и PDO, что позволяет работать с РАЗНЫМИ базами. О каких других стандартных расширениях идет речь?
2) Если нужно работать с разными БД, что мешает использовать паттерн "Фабрика" и работать с разными СУБД через PDO?
3) Вы говорите о высокой производительности. Но ведь PDO и будет самым быстрым, ведь оно есть расширением, а не кодом сверху PHP (а расширения как известно написаны на с, поэтому работают быстрее, чем нативный пхп-код).
Может я конечно что-то не так понял в Вашем сообщении? Поправьте, если я не прав.
3240 сообщений
#16 лет назад
ArtLab,1. Ни о каких других стандартных расширениях, предназначенных для работы с multiple RDBMS, речь в моем посте не идет. Но наоборот, я имею в виду в своем посте, что остальные _универсальные_ _либы_ - не являются стандартными для PHP расширениями. Но, кроме универсальных решений, предназначенных для работы с разными базами данных, есть _стандартные_ расширения для работы с каждой из них в отдельности. Например, mysql и mysqli extensions, oci8 extension, и т.д.
Примечание. Все-таки, существуют и другие PHP расширения для работы с различными БД, но они от сторонних производителей, и не входят ни в стандартный набор PHP расширений, ни в PECL. Например, ADOdb PHP extension (помню, в версии 3 было).
2. Так как PHP не поддерживает персистенты, в целях повышения производительности не рекомендую использовать дополнительные промежуточные паттерны в PHP ни в каком виде. Для сложных PHP проектов лучше всего подходит metadata-oriented подход. Но это так, к слову.
На самом деле - ничто не мешает использовать фабрику. Кроме разве что лишнего кода этой самой фабрики, который будет постоянно выполняться при каждом реквесте. Но если производительность не критична - тогда нет проблем.
3. PDO - далеко не самое быстрое решение. Прежде всего потому, что оно относительно универсальное. Самое быстрое решение - использовать вызовы родных RDBMS-specific функций. Согласитесь. Это тоже PHP расширения, тоже стандартные, но дающие возможность использовать максимальные преимущества тех или иных DBMS.
Именно об этом и был мой пост, посмотрите пожалуйста.