Перемещение из mysql в mysqli или pdo?
Я хочу переместить веб-сайт из mysql в mysqli или pdo, как в основном, в инструмент обучения, но также и по мере увеличения производительности.
Я прочитал http://php.net/manual/en/mysqli.overview.php, и похоже, что оба они подойдут моим потребностям, но это не сильно упирается.
В настоящее время сайт использует преимущественно не ориентированный на объект код, но у меня есть опыт работы с OO на других языках. Огромное большинство запросов - это простые сложные команды выбора с очень небольшим количеством обновлений/вставок. Что вы предлагаете как наиболее полезное как из моего собственного образования, так и для этого конкретного сайта?
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать.
Спасибо.
Ответы
Ответ 1
PDO Pro's:
- Родной для PHP с 5.x
- Поддерживает именованные параметры в противоположность
для численного индексирования?
- Библиотека с одинаковой абстракцией поддерживает несколько различных RDBM
Mysqli Con's:
- Имеет проблемы с надлежащим хранением и
извлечение больших объектов в
базы данных.
- Нет поддержки именованных параметров.
В противном случае обе библиотеки в основном разные вкусы одного и того же. Оба они имеют функции, чтобы указывать параметры, и обе поддерживают параметризованные запросы.
Если ни один из приведенных выше аргументов не повлияет на вас, перейдите к любой библиотеке, которую вы предпочитаете, в зависимости от ее синтаксиса, стиля и т.д.
Ответ 2
Я не верю, что PDO даст вам любое увеличение производительности, но это дает вам эти две очень привлекательные долгосрочные преимущества:
- вы можете масштабировать свое приложение, чтобы использовать другие базы данных с несколькими изменениями кода.
- библиотека PDO имеет большую часть безопасности, встроенной в
Если вы не понимаете преимуществ для # 1 и # 2, то просто придерживайтесь проверенной и истинной библиотеки mysql (вы хотя бы используете mysql_real_escape_string, хотя, правильно)?
Если бы я изучал новую библиотеку баз данных PHP, я считаю, что PDO - это путь, особенно если вы создаете веб-приложение, которое может использоваться в различных системах, отличных от вашего собственного сервера.
Ответ 3
Из http://www.php.net/manual/en/mysqli.overview.php:
Хотя у PDO есть свои преимущества, такие как чистый, простой, портативный API, его основным недостатком является то, что он не позволяет вам использовать все расширенные функции, доступные в последних версиях MySQL сервер. Например, PDO не позволяет использовать поддержку MySQL для Несколько выражений.
Ответ 4
PDO предлагает отличную безопасность, чем другие без особых проблем, но для перехода я бы предложил вам перейти на mysqli, поскольку он быстрее, проще, чем PDO, и большинство api/syntax совершенно одинаковы со старым расширением mysql
Смотрите здесь (прокрутите ниже) для быстрого сравнения:
PHP и MySQLi
Изменить: выглядит так же, как вы читали раньше, извините
Ответ 5
При создании моей библиотеки ORM и абстракции я использовал MySQLi и PDO, чтобы увидеть, какой из них лучше работает. MySQLi был быстрее - но этого недостаточно, чтобы сделать выбор на основе этого.
Одна вещь, которую MySQLi/MySQL/SQLite или любая другая независимая библиотека имеет над PDO, заключается в том, что они возвращают количество найденных в результате строк, что часто помогает проверить любые результаты вообще. Между тем, в PDO вы либо получаете результаты fetchAll(), либо count(), либо запускаете запрос count перед тем, как просмотреть количество результатов. Поэтому вам придется адаптироваться для решения этой проблемы по-разному.
О, и в конце я выбираю PDO над MySQLi.