Каково различие между MySQL, MySQLi и PDO? [закрытый]

124
задан Peter Mortensen 13 February 2016 в 02:38
поделиться

4 ответа

MySQLI - расширенная версия MySQL.

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

3
ответ дан 24 November 2019 в 01:09
поделиться
[11481967-

Это разные API для доступа к BackeND MySQL

  • MySQL - это исторический API
  • MySQLI - это новая версия Исторический API. Он должен работать лучше и иметь лучший набор функций. Кроме того, API ориентирован на объект.
  • pdo_mysql , это MySQL для PDO. PDO был введен в PHP, и проект направлен на создание общего API для всех доступных баз данных, поэтому в теории вы сможете мигрировать между RDMS без изменения любого кода (если вы не используете определенную функцию RDBM в ваших запросах. ), также объектно-ориентирован.

Так что это зависит от того, какой код вы хотите произвести. Если вы предпочитаете объектно-ориентированные слои или простой функции ...

Мой совет будет

  1. PDO
  2. MySQLI
  3. MySQL

также мое чувство, API MySQL, вероятно, будет удален в будущих выпусках PHP .

43
ответ дан 24 November 2019 в 01:09
поделиться

Ну, это зависит от того, что вы имеете в виду под общением. Кажется, возможен какой-то тип коммуникации. Вот пример: HTML на www.abc.com:

<iframe name="test1" src="http://www.xyz.com/frame1.html">
<iframe name="test2" src="http://www.xyz.com/frame2.html">

Поскольку iframes названы мы можем сделать это в frame2:

<a href="javascript:alert(document.body.innerHTML)" target="test1">click me</a>

Поэтому мы щелкаем ссылку в frame 2, но содержимое frame 1 отображается.

-121--3339021-

Мое решение состоит в преобразовании результата сущностей в список и после , которые применяют Contains ().

Пример:

var items = db.InventoryItem
                .Include("Kind")
                .Include("PropertyValues")
                .Include("PropertyValues.KindProperty")
                .ToList()
                .Where(itm => valueIds.Contains(itm.ID));
-121--2722947-

Существует (более) трех популярных способов использования MySQL от PHP. Здесь описываются некоторые функции/различия PHP: Выбор API :

  1. ( DEAGREATED ) Функции mysql являются процедурными и используются вручную.
  2. MySQLi - это замена функций mysql объектно-ориентированными и процедурными версиями. Она поддерживает подготовленные заявления.
  3. PDO (PHP Data Objects) - общий уровень абстракции баз данных с поддержкой MySQL среди многих других баз данных. Он предоставляет подготовленные инструкции и значительную гибкость в способе возврата данных.

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

94
ответ дан 24 November 2019 в 01:09
поделиться

Существует таблица, сравнивающая 3 функции API. Используйте Mysqli всякий раз, когда это возможно, так как последний запущен после PDO и будет лучше поддерживаться в будущем.

7
ответ дан 24 November 2019 в 01:09
поделиться
Другие вопросы по тегам:

Похожие вопросы: