No Image

Mysqli подключение к базе данных

СОДЕРЖАНИЕ
284 просмотров
10 марта 2020

Прежде чем подключиться к MySQL серверу необходимо определиться с PHP расширением, которое будет использоваться для работы с базой данных. Под расширением понимается драйвер — посредник между сервером базы и программистом. Он содержит набор функций или объектов, которые упрощают работу программиста. На данный момент выделяют 3 основных расширения.

Все 3 расширения являются стандартным набором для любой хорошей хостинг-площадки. Однако, по умолчанию некоторые могут быть отключены в настройках PHP модулей. Информацию о включенных модулях возвращает функция «phpinfo» с параметром «8».

Доступность модуля можно определить с помощью простой конструкции в коде.

Подключение к MySQL через одноименное расширение

Расширение MySQL появилось первым и долгое время не имело конкурентов. Сейчас считается устаревшим и в серьезных проектах не используется. На это есть ряд причин, основными из которых являются плохая оптимизация и безопасность, отсутствие многопоточности. Несмотря на это, оно ещё долго будет поддерживаться большинством хостингов.

Начиная с PHP версии 5.5 многие функции расширения стали устаревшими, а в PHP 7 и вовсе не поддерживаются.

Рассмотрим пример подключения к базе данных с комментариями.

В качестве запросов используется стандартный SQL. Рассмотрим простые примеры выборки и добавления записей.

В примере производим простую выборку записей из таблицы «books». Результат представлен в качестве ассоциативного массива, поэтому его содержимое можно получить в обычном цикле. Если запрос не возвращает набор данных, то в качестве результата возвращается «false» или «true».

Отличие MySQLi от MySQL

MySQLi пришло на смену MySQL. Буква «i» обозначает улучшенный (Improved). Имеет частичную совместимость со старой версией. Поддерживается всеми версиями PHP. Имеет чуть большую скорость работы и лучшую безопасность. Установлено на 99% хостинговых площадках.

Одной из важных особенностей является наличие объектно-ориентированного интерфейса. Если раньше работы с базой данных осуществлялись при помощи интерфейса функций, то теперь можно использовать оба подхода. Рассмотрим пример подключения к базе данных через MySQLi средствами «ООП».

Так осуществляется простая выборка названий книг из поля «BName» таблицы «books». Вставка и обновление существующих записей так же не отличается сложностью.

В конце запроса осуществляем проверку, удалось ли обновить запись.

Подключение к базе через PDO

PDO — расширение для PHP, которое расшифровывается как PHP Data Objects. Его особенностью является повышенная безопасность и универсальный интерфейс работы с различными базами данных. Другими словами, если с помощью MySQLi можно создавать запросы только для MySQL сервера, то PDO позволяет работать с различными серверами используя один и тот же синтаксис запросов. Это удобно если разработчик заранее не знает под управлением какого сервера будет работать конечный продукт.

У PDO есть свой механизм соединения с базой данных — «DSN» (Data Source Name). Кроме адреса сервера, логина и пароля, он должен принять тип базы данных. Посмотрим пример подключения.

Точно так же осуществляются и другие действия с записями и таблицами. Только меняем SQL запрос и вызываем выполнение методом «exec».

Читайте также:  Gigaset a120 инструкция на русском

Метод «exec» в отличии от «query» не может получать данные из базы данных. Он возвращает количество записей, которые были затронуты в результате работы SQL запроса.

Главное меню » Базы данных » База данных MySQL » PHP MySQL. Подключение к базе данных MySQL

Перед подключением к базе данных MySQL необходимо указать следующую информацию:

  • Имя источника данных MySQL или DSN: указывает адрес сервера базы данных MySQL. Вы можете использовать IP-адрес или имя сервера, например, 127.0.0.1 или localhost
  • Имя базы данных MySQL: указывает имя базы данных, к которой вы хотите подключиться.
  • Имя пользователя и пароль: укажите имя пользователя и пароль пользователя MySQL, который вы используете для подключения к серверу базы данных MySQL. Учетная запись должна иметь достаточные привилегии для доступа к базе данных, указанной выше.

Мы будем использовать:

  • Локальный сервер базы данных MySQL, так что DSN есть localhost.
  • Classicmodels в качестве образца базы данных.
  • root с пустым паролем, только ради демонстрации.

Подключение к MySQL

Во-первых, чтобы сделать это удобным, мы создадим новый файл PHP для конфигурации базы данных с именем dbconfig.php, который содержит все настроенные параметры:

Во-вторых, мы создаем новый файл PHP с именем phpmysqlconnect.php:

Как работает скрипт

  • Мы включили файл dbconfig.php в скрипт, используя функцию require_once.
  • Внутри блока try мы создали новый объект PDO с тремя аргументами: строка подключения, имя пользователя и пароль. Строка подключения состоит из переменных $host и $dbname в файле dbconfig.php.
  • Если соединение с базой данных MySQL установлено успешно, мы отобразили сообщение об успехе. Если были какие-либо ошибки или исключения, PHP выдал исключение PDOException который содержит подробное сообщение об ошибке. Мы вызываем метод getMesage() объекта PDOException, чтобы получить подробное сообщение для отображения.

В-третьих, давайте протестируем скрипт из веб-браузера.

Работает как положено. Мы успешно подключились к серверу MySQL.

Давайте попробуем что-то изменить в коде, чтобы скрипт отображал сообщение об ошибке. Если вы установите пустую переменную $username, вы получите следующее сообщение об ошибке:

Сообщение об ошибке показывает, что:

потому что у нас нет пустого пользователя в базе данных classicmodels.

Когда скрипт заканчивается, PHP автоматически закрывает соединение с сервером базы данных MySQL. Если вы хотите явно закрыть соединение с базой данных, вам нужно установить объект PDO null следующим образом:

В этой статье вы узнали, как подключиться к MySQL с помощью объекта PHP PDO и обрабатывать любые исключения, которые могут возникнуть при подключении базы данных MySQL.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Главное меню » Базы данных » База данных MySQL » 3 способа подключения к MySQL с помощью PHP с примерами кода

Читайте также:  Как вернуть действие в blender

В этом руководстве описывается следующие три метода вместе с соответствующей программой примера на PHP, которая объяснит, как подключиться с помощью PHP к базе данных MySQL.

  • Подключение с помощью расширения Mysqli (рекомендуется)
  • Подключение с помощью PDO (рекомендуется)
  • Подключение с помощью традиционных функций устаревших mysql_ (устар)

Для этого необходимо установить пакет PHP-MySQL.

На основе дистрибутива RedHat включая CentOS, использовать yum для установки PHP-MySQL, как показано ниже.

В зависимости от вашей системы, выше будем устанавливать или обновлять следующие зависимости:

После того, как все установлено, страница phpinfo будет отображать MySQL модуль, как показано ниже:

Для всех приведенных ниже примеров, мы будем подключаться к базе данных MySQL, которая уже существует. Если вы новичок в MySQL, это хорошее место, чтобы начать: MySQL – Руководство для начинающих.

Примечание: Все, что описано здесь также будет работать с MariaDB, как это работает на MySQL.

1. Подключение на PHP с использованием расширения Mysqli

MySQLi означает MySQL Improved.

Обратите внимание, что в большинстве дистрибутивов (например: CentOS), PHP-MySQLi уже является частью пакета PHP-MySQL. Таким образом, вам не придется искать и устанавливать пакет PHP-MySQLi. Все, что вам нужно сделать, это установить пакет PHP-MySQL, чтобы получить работающее расширение Mysqli на вашей системе.

Создайте следующий файл mysqli.php в DocumentRoot вApache:

В приведенном выше:

  • MySQLi – Эта функция будет инициировать новое соединение, используя расширение Mysqli. Эта функция будет принимать четыре аргумента:
    1. Имя хоста, где база данных MySQL работает
    2. Имя пользователя для подключения MySQL
    3. Пароль для пользователя mysql
    4. База данных MySQL для подключения.
    5. Функция запроса – Используйте ее, чтобы указать ваш запрос MySQL. В этом примере, мы выбираем столбец имени из базы данных employee.
    6. Наконец, мы отображаем количество строк, выбранных с помощью переменной num_rows. Мы также закрываем соединение, как показаны выше.

    При вызове mysqli.php из вашего браузера, вы увидите следующий вывод, что свидетельствует о том, что PHP был в состоянии подключиться к базе данных MySQL и сделать выборку данных.

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

    2. Подключение при помощи PHP к MySQL с расширением PDO

    PDO означает PHP Data Objects.

    PDO_MYSQL реализует интерфейс PDO, предоставляемый РНР для подключения программы к базе данных MySQL.

    В большинстве дистрибутивов Linux (например, CentOS и RedHat), PHP-PDO пакет уже входит в пакет PHP-MySQL. Таким образом, вам не придется искать и устанавливать пакет PHP-PDO. Все, что вам нужно сделать, это установить пакет PHP-MySQL, чтобы получить работающее расширение PDO_MYSQL PHP в вашей системе.

    Создайте следующий файл MySQL-pdo.php в вашим Apache DocumentRoot:

    Читайте также:  Как выйти из полного экрана на ноутбуке

    В приведенном выше:

    • новый PDO – Создаст новый объект PDO, который будет принимать следующие три аргумента:
      1. Строка подключения MySQL: будет в формате “mysql:host=$hostname;dbname=$dbname”. В приведенном выше примере, БД работает на локальном хосте, и мы подключаемся к базе данных andreyex.
      2. Имя пользователя для подключения к MySQL.
      3. Пароль для пользователя mysql.
      4. $sql variable – создание запроса SQL, который вы хотите выполнить. В этом примере, мы выбираем столбец name из таблицы employee.
      5. query($sql) – здесь мы выполняем SQL запрос, который мы только что создали.
      6. foreach – вот здесь мы пробегаем по вышеуказанным командам и сохраняем их в переменной строке $, а затем мы показываем их с помощью команды печати.
      7. В MySQL PDO, чтобы закрыть соединение, просто обнулите значение переменной $conn.

      При вызове mysqli.php из вашего браузера, вы увидите следующий вывод, что свидетельствует о том, что PHP был в состоянии подключиться к базе данных MySQL и сделать выборку данных.

      3. Подключение на PHP с использованием функций mysql_ (устар)

      Используйте этот метод, только если вы используете более старую версию PHP и не можете обновить ее до новой версии по какой-то причине.

      Рекомендуется использовать метод #2 и #3, показанный выше, вместо этого метода. Я включил этот метод только для справки, а не как рекомендация к использованию.

      Это устаревшее расширение PHP 5.5 версии. Но начиная с PHP 7.0 версии, это не будет работать, так как она была удалена.

      Начиная с PHP 5.5 версии, когда вы используете эти функции, они будет генерировать ошибку E_DEPRECATED.

      Создайте следующий файл MySQL-legacy.php под Apache DocumentRoot:

      В приведенном выше:

      • Функция mysql_connect принимает три аргумента: 1) имя хоста, где база данных MySQL работает, 2) Имя пользователя для подключения к MySQL, 3) Пароль для пользователя MySQL. Здесь подключаемся к базе данных MySQL, которая выполняется на локальном сервере, используя имя пользователя root и его пароль.
      • Функция mysql_select_db – Как следует из названия, будет выбирать базу данных, к которой вы хотите подключиться. Это эквивалентно команде «use». В этом примере мы подключаемся к базе данных andreyex.
      • Функция mysql_query – Используйте ее, чтобы указать ваш запрос MySQL. В этом примере, мы выбираем столбец name из базы данных employee.
      • mysql_fetch_row – используйте эту функцию для извлечения строк из запроса SQL, который мы только что создали.
      • Наконец закрыть соединение с помощью команды mysql_close, как показано выше.

      При вызове MySQL-legacy.php из вашего браузера, вы увидите следующий вывод, что свидетельствует о том, что PHP был в состоянии подключиться к базе данных MySQL и сделать выборку данных.

      Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

      Комментировать
      284 просмотров
      Комментариев нет, будьте первым кто его оставит

      Это интересно
      Adblock
      detector