Стандартные библиотеки подключений для MySQL, MSSQL и Oracle в PHP - PullRequest
4 голосов
/ 05 октября 2008

Я ищу стандартный способ подключения к базам данных на PHP. Мы все были там - сначала начнем с некоторого элементарного кода для соединения / запроса / итерации / вставки / отключения, затем код рос по мере роста программы и заканчивался беспорядком, который вряд ли можно использовать повторно.

Я знаю, что есть много библиотек / классов PEAR, PECL и других PHP, которые могут соответствовать моему описанию, но какие из них поддерживаются, используются и доказали свою безошибочность и эффективность?

Ответы [ 5 ]

6 голосов
/ 05 октября 2008

, если вы используете PHP 5 , попробуйте PDO

2 голосов
/ 05 октября 2008

Я в шоке Zend_Db еще не упоминалось ...

  • PEAR MDB2 : очень стабильный, также предоставляет слой, который реализует все функции, поддерживаемые MDB2 , во всех базах данных, где его можно по крайней мере смоделировать. Я использовал его в течение многих лет с большим успехом.
  • Zend Framework Zend_Db : Я только начал использовать более высокие уровни всей инфраструктуры БД Zend, но, похоже, он достаточно стабилен и очень хорошо продуман.
  • Родной PHP5 PDO : я его вообще не использовал, но считаю, что это самый простой из всех. Фактически, и MDB2 , и Zend_Db могут использовать PDO в качестве нижележащего слоя.

Все вышеперечисленные орудия готовятся и выполняются. Из вышеперечисленных MDB2 является наиболее зрелым, поскольку он существует уже давно и основан на DB и MDB . Zend_Db представляется наиболее хорошо продуманным. Я знаю, что есть другие, но у меня нет опыта или каких-либо знаний о них.

2 голосов
/ 05 октября 2008

try Object Relational Mapping библиотеки, такие как Propel и Doctrine , обе используют PDO в качестве уровня абстракции базы данных, поэтому они в значительной степени работают на всех движках.

1 голос
/ 05 октября 2008

Когда мы смотрели на новые объекты подключения / запроса к БД, пытаясь решить, кому писать или использовать новые библиотеки, мы решили, что лучше написать свою собственную. В конце концов, он, вероятно, не обладает такой гибкостью, как многие другие библиотеки, но мы добавили такие функции, как GetAll(), который извлекает все строки в массиве с ключами, или GetAllKeyed(), который возвращает массив с ключами с идентификатором как ключ. Еще один замечательный вариант - GetOne() для использования, когда ваш выбор имеет только 1 столбец. Все это значительно уменьшило объем кода.

Еще одна особенность заключается в том, что когда вы выполняете запрос, он определяет тип запроса (INSERT, UPDATE, SELECT, DELETE и т. Д.) И затем возвращает соответствующую информацию (например, INSERT, идентификатор последней вставки или DELETE количество удаленных строк).

Но мы также скопировали такие функции, как Подготовка и выполнение из PEAR: DB.

1 голос
/ 05 октября 2008

Эти два являются лучшими на мой взгляд. Я не могу утверждать, что попробовал их всех, хотя:)

Если в Linux вам понадобится FreeTDS для подключения к MSSQL, независимо от выбранной вами библиотеки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...