Создание ORM - MySQL против обычного SQL против PDO - PullRequest
0 голосов
/ 01 апреля 2011

Я искал очень легковесную библиотеку PHP ORM и наткнулся на несколько хороших вариантов. К сожалению, большинство вариантов требуют некоторой формы конфигурация, например добавив больше полей в класс и многие из них не так интуитивно понятны.

Я не хочу использовать фреймворк, но предпочитаю просто ORM для вопросов и ответов прототипы.

В любом случае, я начал создавать свою собственную PHP ORM библиотеку под названием SORM (Simple ORM). Это очень в альфа-состоянии. Вы можете проверить код и примеры на

https://github.com/teraom/sorm

Буду признателен за обратную связь или указания как поступить, что изменить и т. д. Я заинтересован в использовании mysqli для запросов к базе данных, специально для подготовленных операторы, чтобы избежать внедрения SQL.

  1. Есть ли способ использовать подготовленные операторы с обычным PHP - SQL функции? Или предотвратить внедрение SQL другими способами? http://us2.php.net/manual/en/ref.mysql.php

  2. Установлен ли mysqli по умолчанию при установке PHP? (PHP 5.2 и выше)

  3. Я очень мало знаю о PDO. PDO установлен по умолчанию в PHP 5.2 и выше? PDO тоже входит в картину?

Спасибо, Bharad

1 Ответ

4 голосов
/ 01 апреля 2011

Есть ли способ использовать подготовленные операторы с обычными функциями PHP - SQL?

Только если поддерживается обычными функциями.Дряхлое расширение "mysql" не предоставляет эту функциональность.Некоторые другие делают, например, для PostgreSQL.

Установлен ли mysqli по умолчанию при установке PHP?(PHP 5.2 и выше)

Это не подлежит ответственности, так как это зависит от того, как был скомпилирован PHP (если это пользовательская установка), или был ли он установлен через менеджер пакетов.Если он был установлен через менеджер пакетов, то вполне вероятно, что вся поддержка базы данных может быть в необязательном дополнительном пакете.Однако, если поддержка mysql в целом включена, расширение mysqli должно быть доступно.

Установлен ли PDO по умолчанию в PHP 5.2 и выше?

Тот же ответ, что и раньше - это зависит от того, как был установлен PHP.Он включен по умолчанию при компиляции, но он может быть недоступен в зависимости от управления пакетами.

В целом, вы можете рассчитывать на то, что PDO будет доступен в большинстве случаев времени.,Если это не так, то это будет либо надзор от имени системного администратора, либо намеренное решение отключить его с помощью менеджера идиотов.

lot современного PHP создается с учетом того, что PDO будетбудь там.Создание адаптеров для PDO и mysqli не слишком слишком , так как оба имеют обычно похожих наборов функций.Просто следите за странным, странным способом, которым bind_param работает - он ожидает один вызов со всеми связываемыми вещами, по ссылке .Это имеет тенденцию отключать людей.


Другой вариант: вместо того, чтобы строить поверх PDO, создайте поверх другой оболочки.Я не хочу, чтобы на вас было все начало, но взгляните на Zend_Db .Да, я знаю, что вы не хотите использовать фреймворк, но все равно посмотрите на него.Он имеет адаптеры для различных разновидностей PDO, mysqli, Oracle и DB2.Он также довольно всеобъемлющий, и построитель запросов (Zend_Db_Select) довольно удобен.

В этой области есть много других опций, например старый добрый PEAR MDB2 , который использует эмуляцию для подделки подготовленных операторов и заполнителей.

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