Что использовать: MySQLi или PDO?

Автор: admin

Дата: 12.09.2020 02:49

PDO будет работать с 12 различными системами баз данных, MySQLi будет работать только с базами данных MySQL.

Итак, если вам нужно переключить свой проект на использование другой базы данных, PDO упрощает процесс. Вам нужно только изменить строку подключения и несколько запросов. С MySQLi вам нужно будет переписать весь код, включая запросы.

Оба являются объектно-ориентированными, но MySQLi также предлагает процедурный API.

Оба поддерживают подготовленные операторы защищают от внедрения SQL, что очень важно для безопасности веб-приложений.

Итак, MySQLi: Установка MySQLi Для Linux и Windows: расширение MySQLi автоматически устанавливается в большинстве случаев, когда установлен пакет php5 mysql.

Для получения информации об установке перейдите по адресу: http://php.net/manual/en/mysqli.installation.php

Установка PDO Подробнее об установке: http://php.net/manual/en/pdo.installation.php

Откройте соединение с MySQL Прежде чем мы сможем получить доступ к данным в базе данных MySQL, мы должны иметь возможность подключиться к серверу:

Объектно-ориентированный MySQLi

$servername = "localhost";
$username = "username";
$password = "password";

// Создаем соединение
$conn = new mysqli ($servername, $username, $password);

//Проверяем подключение к БД
if ($conn->connect_error) {
  die ("Ошибка подключения:". $ conn->connect_error);
}
echo «Подключено успешно»;

$connect_error не работал в версиях до PHP 5.2.9 и 5.3.0. Если необходимо обеспечить совместимость с версиями PHP до 5.2.9 и 5.3.0, используйте вместо этого следующий код:

// Проверяем подключение к БД
if (mysqli_connect_error ()) {
        die("Ошибка подключения к базе данных:".
        mysqli_connect_error ());
}

MySQLi процедурный API:

<?php
$servername = "localhost";
$username = "username";
$password = "password";

// Создаем соединение
$conn = mysqli_connect($servername, $username, $password);

// Проверяем подключение к БД
if (!$conn) {
  die ("Ошибка подключения:". mysqli_connect_error());
}
echo "Подключено успешно";
?>

PDO:

<?php
$servername = "localhost";
$username = "username";
$password = "password";

try {
  $conn = new PDO("mysql: host = $servername; dbname = myDB", $username, $password);
  // устанавливаем режим ошибки PDO на исключение
  $conn->setAttribute (PDO :: ATTR_ERRMODE, PDO :: ERRMODE_EXCEPTION);
  echo "Подключено успешно";
} catch (PDOException $e) {
  echo "Ошибка подключения:". $e->getMessage ();
}
?>

Примечание. В приведенном выше примере PDO мы также указали базу данных (myDB). PDO требуется действующая база данных для подключения. Если база данных не указана, генерируется исключение.

Совет: Большим преимуществом PDO является то, что он имеет класс исключения для обработки любых проблем, которые могут возникнуть в наших запросах к базе данных. Если в блоке try {} возникает исключение, сценарий прекращает выполнение и переходит непосредственно к первому блоку catch () {}.

Закрывается соединение автоматически по завершении скрипта. Чтобы закрыть соединение раньше, необходимо:

Объектно-ориентированный MySQLi:

$conn->close();

MySQLi Процедура:

mysqli_close($conn);

PDO:

$conn = null;