Как подключиться к базе данных SQL в PHP

Сегодня я хочу, чтобы вы узнали, как правильно установить соединение с базой данных SQL в проекте PHP.

Предварительные требования


  • Знание языка PHP
  • Иметь локальную среду PHP и MySQL/MariaDB
  • [Необязательно] Имейте приложение для управления базой данных с графическим интерфейсом пользователя ( phpmyAdmin или другие), если у вас его нет/он вам не нужен, вы можете использовать CLI для подключения к базе данных

Цель


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

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

Давайте начнем наш тур.

Рабочая область

Создайте папку для проект (мой — php-pdo ):

  mkdir php-pdo  

Добавить index.php , config.php и connection.php :

  touch index.php config.php connect.php  

Также создайте базу данных ( test ):

  СОЗДАТЬ БАЗУ ДАННЫХ, ЕСЛИ НЕ СУЩЕСТВУЕТ test;  

Подключение к базе данных с помощью PDO

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

Пришло время начать использовать PDO. В connection.php создайте экземпляр PDO следующим образом:

   Php $ connection = new PDO ();  

Примечание :
Вам кажется странным синтаксис PDO? Не бойтесь этого. Просто следуйте за мной, чтобы узнать, как его использовать.

PDO () принимает эти четыре параметра:

  • DSN (имя источника данных) : тип базы данных, имя хоста, имя базы данных (необязательно)
  • логин хоста
  • пароль хоста
  • дополнительные параметры

Учитывая информацию о нашей базе данных, давайте заменим эти параметры их реальными значениями:

   php $ connection = new PDO ("mysql: host = localhost;  dbname = test "," root "," ", [PDO :: ATTR_ERRMODE => PDO :: ERRMODE_EXCEPTION];  

Примечание

  • Строка PDO :: ATTR_ERRMODE => PDO :: ERRMODE_EXCEPTION указывает PDO на выдачу исключения в случай ошибки.
  • Возможно, вы заметили, что я не закрываю свой тег PHP. Это необязательно, и иногда лучше не включать его, если последнее, что есть в вашем файле, — это PHP-код.

Мы профессионалы, давайте писать код как профессионалы.

Отредактируйте код

Наше соединение работает нормально, но мы все еще можем провести рефакторинг кода. Давайте упростим нашу строку подключения:

  $ connection = new PDO ($ dsn, $ username, $ password, $ options);  

В config.php мы добавляем всю информацию о базе данных:

  $ host = "localhost"; $ username = "root"  ; $ password = ""; $ dbname = "test"; $ dsn = "mysql: host = $ host; dbname = $ dbname"; $ options = [PDO :: ATTR_ERRMODE => PDO :: ERRMODE_EXCEPTION];  

Примечание :
Если вы используете базу данных, отличную от MySQL, вам необходимо изменить mysql в $ dsn = "mysql: host = $ host; dbname = $ dbname" на имя вашей базы данных (например, pgsql ).

Теперь мы можем вызвать config.php в connection.php .

   phpfunction db_connect () {требуется "config.php";  $ connection = новый PDO ($ dsn, $ username, $ password, $ options);  return $ connection;}  

Мы создали функцию, которая возвращает объект подключения к базе данных. Теперь пора:

Использовать строку подключения

В index.php мы можем использовать db_connect () выглядит так:

   phprequire "connection.php"; $ connection = db_connect ();?> 

Здравствуйте Мир

Браузер напечатает Hello World , если все в порядке.

Но что происходит в случае ошибки?

Хороший вопрос. Давайте посмотрим, как:

обрабатывать исключения

Проще говоря, исключения — это просто ошибки. Помните, что мы установили атрибуты PHP для выдачи ошибок как исключений ( PDO :: ATTR_ERRMODE => PDO :: ERRMODE_EXCEPTION ).

Сначала перейдите к config.php и что-то неправильно поставил. Допустим, я ввел пароль базы данных как blablabla . Теперь в браузере у вас будет следующее:

Как вы можете видеть на изображении выше, приложение обнаружило ошибку. В нем дается описание ошибки, а также строка, в которой может быть обнаружена проблема. Это может быть интересно, если мы все еще разрабатываем наше приложение, но в производственной среде это связано с высоким риском безопасности. Мы не хотим раскрывать нашим посетителям слишком много информации об ошибке. Вы можете заметить, что ошибка приложения многое говорит о нашем коде: файле, строке подключения и строке.

Чтобы исправить эту проблему, нам нужно использовать try/ блок catch :

  try {require "config. php "; $ connection = new PDO ($ dsn, $ username, $ password, $ options); return $ connection;} catch (PDOException $ e) {die ($ e-> getMessage ());}   

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

Заключение


В этом руководстве мы научились писать скрипт для подключения к базе данных SQL на PHP как профессионал, используя:

  • PDO
  • try/catch для обработки ошибок.

Вы можете найти весь код здесь.

Спасибо за обучение вместе со мной. !

Оцените статью
nanomode.ru
Добавить комментарий