PHP: с чем работать? - PullRequest
       2

PHP: с чем работать?

1 голос
/ 05 декабря 2010

Хорошо, так что я работаю с проектом сообщества для моего местного города.

На данный момент я только что создал страницы входа и одну страницу в сессиях ..

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

Я использую обычные прямые mysql_query () для общения с базой данных.

Я видел все больше и больше вещей, сделанных в библиотеках, называемых "PDO", и некоторых других.Они более безопасны?быстрее может быть?Как вы работаете с этим?

Я имею в виду, когда я работаю с запросами, я просто использую простой выбор, откуда, вставлять, удалять, группировать и т. Д. Что вы делаете в PDO?Можете ли вы преобразовать запросы, сделанные в обычных запросах, в операторы PDO?

Пример: Как я могу написать это в PDO:

mysql_quey("SELECT * FROM users WHERE id = '$id'");

Любая ссылка на учебники для PDO, с относительным нормальным пониманием английского языка, будет отличной.

Илиможет быть, есть лучшая альтернатива, чем PDO?Мне не нужен этот максимальный предел, лучший из всех и продвинутый.Я просто хочу, чтобы он защищал от обычных и типичных SQL-инъекций.

Любой подробный и хорошо информированный ответ будет принят.

Ответы [ 3 ]

1 голос
/ 05 декабря 2010

PDO намного лучше по следующим причинам:

Используя подготовленные операторы, вы написали бы свой код следующим образом:

$sth = $dbh->prepare('SELECT * FROM users WHERE id=:id');
$sth->execute(array(':id'=>$id));

Для получения дополнительной информации см. Документацию по подготовке .

0 голосов
/ 05 декабря 2010

Наиболее удобный способ решения проблем безопасности при взаимодействии с базой данных SQL, такой как MySQL, - использование подготовленных операторов. С этими значениями вам не нужно экранировать значения, поскольку запросы делаются из двух частей: самого оператора (общего с заполнителями) и значений, добавляемых позже в нужном месте. Это самая надежная форма защиты от SQL-инъекций.

Библиотеки, такие как PDO, предоставляют другие преимущества, такие как абстракция (если вам не нужны хаки, специфичные для платформы базы данных, вы можете использовать один и тот же код, даже если вы измените СУБД), интерфейс OO, вспомогательные функции, лучшее взаимодействие с объектами (см. ORM ) и другие вещи, которые могут вам понадобиться или не понадобиться в зависимости от вашего проекта.

В конце я бы посоветовал рассмотреть библиотеку немного более высокого уровня, чем простой mysql_*, поскольку это просто самое основное взаимодействие.

0 голосов
/ 05 декабря 2010

Вы должны работать с рамками.Их много: Kohana, Symfony, CakePHP, CodeIgniter и т. Д.

Большинство будет обрабатывать не только проблемы с базой данных (как внедрение MySQL), но и множество обычных функций, а также шаблоны, многократно используемые элементы,маршруты и т. д.

Посмотрите на них.

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