Учебник по PHP

PHP ГЛАВНАЯ Введение в PHP Установка PHP Синтаксис PHP Комментарии PHP PHP-переменные PHP-эхо/печать Типы данных PHP PHP-строки PHP-номера PHP-математика PHP-константы PHP-операторы PHP Если... Иначе... Иначе PHP-переключатель PHP-циклы PHP-функции PHP-массивы PHP-суперглобальные переменные PHP регулярное выражение

PHP- формы

Обработка форм PHP Проверка формы PHP Требуется PHP-форма URL-адрес формы PHP/электронная почта PHP-форма завершена

PHP продвинутый

Дата и время PHP PHP включает Обработка файлов PHP Открытие/чтение файла PHP Создание/запись файла PHP Загрузка файла PHP PHP-куки PHP-сессии PHP-фильтры Расширенные фильтры PHP Функции обратного вызова PHP PHP JSON Исключения PHP

PHP ООП

PHP Что такое ООП PHP-классы/объекты PHP-конструктор PHP-деструктор Модификаторы доступа PHP Наследование PHP PHP-константы Абстрактные классы PHP PHP-интерфейсы Особенности PHP Статические методы PHP Статические свойства PHP Пространства имен PHP Итерации PHP

База данных MySQL

База данных MySQL Подключиться к MySQL MySQL Создать БД MySQL Создать таблицу Вставка данных MySQL MySQL Получить последний идентификатор MySQL Вставить несколько MySQL подготовлен Выбор данных MySQL MySQL Где Порядок MySQL MySQL Удалить данные Данные обновления MySQL Предельные данные MySQL

PHP XML

XML-парсеры PHP Парсер PHP SimpleXML PHP SimpleXML — Получить PHP XML Expat PHP XML DOM

PHP — АЯКС

Введение в АЯКС АЯКС PHP База данных AJAX АЯКС XML AJAX-поиск в реальном времени АЯКС-опрос

Примеры PHP

Примеры PHP PHP-компилятор PHP-викторина PHP-упражнения PHP-сертификат

Справочник по PHP

Обзор PHP PHP-массив Календарь PHP Дата PHP PHP-каталог Ошибка PHP PHP-исключение Файловая система PHP PHP-фильтр PHP FTP PHP JSON Ключевые слова PHP PHP-библиотека XML PHP-почта PHP-математика PHP Разное PHP MySQLi PHP-сеть Управление выводом PHP PHP регулярное выражение PHP SimpleXML PHP-поток PHP-строка Обработка переменных PHP XML-парсер PHP PHP-архив Часовые пояса PHP

PHP -подключение к MySQL


PHP 5 и более поздние версии могут работать с базой данных MySQL, используя:

  • Расширение MySQLi («i» означает улучшенное)
  • PDO (объекты данных PHP)

Более ранние версии PHP использовали расширение MySQL. Однако это расширение устарело в 2012 году.


Должен ли я использовать MySQLi или PDO?

Если вам нужен короткий ответ, это будет «Как вам угодно».

И MySQLi, и PDO имеют свои преимущества:

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

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

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

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


Примеры MySQL в синтаксисе MySQLi и PDO

В этой и следующих главах мы демонстрируем три способа работы с PHP и MySQL:

  • MySQLi (объектно-ориентированный)
  • 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)

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

// Create connection
$conn = new mysqli($servername, $username, $password);

// Check connection
if ($conn->connect_error) {
  die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

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

$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)

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

// Create connection
$conn = mysqli_connect($servername, $username, $password);

// Check connection
if (!$conn) {
  die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>

Пример (PDO)

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

try {
  $conn = new PDO("mysql:host=$servername;dbname=myDB", $username, $password);
  // set the PDO error mode to exception
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  echo "Connected successfully";
} catch(PDOException $e) {
  echo "Connection failed: " . $e->getMessage();
}
?>

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

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


Закрыть соединение

Соединение будет закрыто автоматически, когда сценарий завершится. Чтобы закрыть соединение раньше, используйте следующее:

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

$conn->close();

Процедура MySQLi:

mysqli_close($conn);

ПДО:

$conn = null;