Что использовать: 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;