Как подключить к php библиотеки mysql
Подключение базы данных MySQL в PHP
Прежде чем выполнять какие-либо операции с записями в БД, необходимо к ней подключиться. Сделать это можно несколькими способами:
Все эти средства позволяют выполнить одну и ту же задачу. Выбор одного из них определяется условиями текущей разработки, версией PHP и личными предпочтениями.
В любом случае, какой бы мы не применяли метод, необходимо иметь основную информацию о БД и доступах к ней:
В итоге имеем набор заданных переменных для каждого из примеров ниже:
Объектно-ориентированный метод MySQLi
В данном случае, мы создаем экземпляр класса mysqli, с которым далее работаем. При создании, в параметрах задаем информацию о сервере, доступах подключения и имени конкретной базы данных, заданную переменными. Естественно, можно не использовать переменные, а указать строкой данные, но для удобства работы с проектом, подобные параметры удобнее вывести в единый раздел или файл конфигурации.
Процедурный подход к использованию MySQLi
Если для вас более привычен и понятен порядок работы в процедурном формате, то можно использовать этот же метод, но в ином синтаксисе. Такое решение будет удобно, в случае переноса старого проекта, реализованного на MySQL, на версию PHP. Будет меньше изменений в коде.
Подключение к БД средствами PDO
Хорошим решением для работы с веб-проектами является применение технологии PDO (PHP Data Objects). Преимущество технологии в том, что с ее помощью можно работать с различными БД, не меняя основной код проекта.
Подключение MySQL (для старых версий PHP)
Если по какой-то причине, необходима работа в старых версиях PHP или работа с древними проектами, стоит иметь представление о таком подходе. Реализация подобна процедурной MySQLi, т.к. является ее предыдущей версией.
Какой тип подключения к БД выбрать?
Технология подключения всегда выбирается разработчиком исходя из удобства, личных предпочтений и конкретных условий проекта. Главное, чтобы вы понимали рамки проекта и его перспективы. Естественно, не стоит пользоваться древними технологиями и решениями, если есть возможность применить что-то новое и более эффективное.
Если проект небольшой, и не планируется его сложное расширение, то вероятно будет достаточно MySQLi. Причем, лучше объектно-ориентированный подход, т.к. позволяет хорошо структурировать проект.
Если вы разрабатываете систему, которая будет динамически развиваться, возможно вам потребуется заменить БД, с целью работать с большими объемами записей. Здесь лучше реализовать средствами PDO. В последствии, вам не придется изменять много имеющегося кода в связи такими обновлениями.
Ошибки кодировки в результатах примеров
Задачей данной статьи было описание подключений к БД средствами PHP. Чтобы не добавлять лишние строки кода, в примерах используется только код, относящийся к теме. Поэтому если, вы копируете пример и в результате видите непонятные символы вместо сообщений об ошибках подключения кириллицей, стоит указать кодировку. Добавьте в начало кода строку:
Как подключить базу данных MySQL к сайту на PHP
Aug 14 · 5 min read
Работаете c программами на PHP в Linux и у вас есть задача по интегрированию MySQL на сайт на PHP? Тогда это руководство для вас. 😉
Необходимые условия:
PHP и установленный веб-сервер (например, Apache).
Создание таблицы при загрузке сайта
Для начала у вас должен быть установлен PHP. Чтобы получить версию, запускаем:
Вот такой ответ должен прийти:
Теперь установим сервер MySQL. Для этого открываем терминал и запускаем:
Вводим пароль, чтобы начать установку, и нажимаем на Enter.
Проверяем, установлен ли MySQL, этой командой:
Если установка прошла успешно, выводится примерно следующее:
Теперь для доступа к базе данных с использованием программы на PHP нужно передать в качестве аргументов в SQL-запросе имя пользователя и пароль. Поэтому создадим пользователя с паролем и предоставим ему права доступа к базе данных.
Нового пользователя и пароль создаем, выполняя следующую команду:
Теперь предоставим пользователю разрешения на доступ к базе данных, а заодно убедимся, что эти права доступа отображаются (для этого задействуем команду flush ):
И для доступа к MySQL в Google Cloud:
Для привязки ко всем адресам запускаем это:
Для создания нового пользователя и пароля нужно выполнить указанные выше команды. После добавления нового пользователя выходим и перезапускаем сервер MySQL:
Обратите внимание: в случае с PHP версией 7+ для правильного выполнения команд MySQL необходимо использовать расширение MySQLi. Функции MySQLi позволяют получать доступ к серверам баз данных MySQL.
Для установки расширения MySQLi запускаем:
Теперь все готово к выполнению программ на PHP с интегрированием MySQL. Переходим к решению сформулированной выше задачи.
Первым делом создадим базу данных на сервере MySQL. Для этого подключимся к серверу MySQL:
Для того, чтобы создать таблицу, сначала нужно создать базу данных. Следующей командой создаем базу данных с названием «test»:
Дальше эту базу данных нужно выбрать:
Код для создания таблицы при загрузке сайта
База данных готова, теперь напишем код для создания таблицы при загрузке сайта.
Как было указано в необходимых условиях, в качестве хоста будет использоваться Apache2, поэтому выполняем такие команды:
С их помощью создается файл и открывается редактор Vim.
Копируем и вставляем в редактор следующий код:
Теперь сохраняем файл и выходим из него, открываем браузер и заходим на этот сайт:
Если все работает правильно, получаем сообщение об успешном создании таблицы.
Если при открытии сайта сообщения не видно, переходим в каталог, в котором создан файл:
Как подключить к php библиотеки mysql
В данной статье приводится последовательность действия, которые необходимо выполнить для подключения к PHP расширения для работы с MySQL. Данная методика не зависит от используемых версий MySQL, PHP и Apache. Существующие отличия, в работе различных версий данных программ, как правило, указаны в примечаниях.
Процесс установки сервера Apache и подключения к нему PHP описывается в статьях:
По умолчанию, расширение для работы с MySQL (библиотека php_mysql.dll) не подключено к PHP и соответствующие функции недоступны. Для подключения библиотеки необходимо внести изменения в конфигурационный файл php.ini и скопировать дополнительные библиотеки в директорию c:/windows/system32.
1. Укажите PHP (Apache) где находится php.ini (только для Apache 2.x)
Если вы используете Apache версии 2 и выше, то обязательно добавьте в конфигурационный файл Apache (httpd.conf) директиву PHPIniDir, которая позволяет точно указать месторасположение файла php.ini. После добавления директивы перезагрузите Apache и удостоверьтесь, что запуск прошел успешно.
Примечание
Обратите внимание, что при записи пути используются прямые слеши /, что нехарактерно для Windows, в которой используются обратные слеши \\. Дело в том, что и Apache и PHP изначально были созданы для работы на unix-системах, где используются именно прямые слеши. Во избежание возможных трудно-диагностируемых проблем настоятельно рекомендуем использовать в конфигурационных файлах Apache и PHP прямые слеши в unix-формате.
Здесь подразумевается, что конфигурационный файл php.ini хранится в директории c:/php. Чтобы окончательно удостовериться, что Apache нашел конфигурационный файл php.ini выполните функцию phpinfo().
Вывод конфигурационной информации PHP
Найдите в полученных фиолетовых таблицах значение строки «Configuration File (php.ini) Path». В ней должен быть указан путь к используемому файлу php.ini, включая сам файл. Если в этой строке указана только директория, то это значит, что Apache не смог найти файл php.ini.
C:/php/php.ini // Правильно – php.ini найден и используется
C:/windows/ // Неправильно – php.ini не обнаружен
Примечание
В Apache более ранних версий директивы PHPIniDir не было и вследствие этого возникало очень много ошибок, связанных с неправильным расположением файла php.ini. Для Apache версии 1.3 php.ini обязательно должен быть расположен в системной директории Windows, обычно: c:/Windows. Использование директивы PHPIniDir в Apache версии 2 позволяет кардинально решить данную проблему.
После того, как Вы удостоверились, что Apache использует правильный php.ini можно приступать к его редактированию для подключения расширения работы с MySQL.
2. Настройте в PHP.INI директиву extension_dir
Директива extension_dir указывает директорию, в которой располагаются библиотеки расширений php, в том числе и библиотека php_mysql.dll. Если вы установили php в директорию c:/php, то библиотеки расширений, как правило, располагаются в поддиректорию ext (c:/php/ext). Проверьте так ли это и установите правильное значение директивы extension_dir.
3. Подключите расширение для работы с MySQL
Для этого найдите в php.ini строчку:
И снимите с нее символ комментария – точку с запятой.
4. Скопируйте дополнительную библиотеку libmysql.dll в c:/windows
Если PHP у Вас подключен к Apache в качестве модуля, то для подключения расширения MySQL необходимо скопировать дополнительную библиотеку libmysql.dll из директории c:/php в директорию c:/windows/system32. Если php подключен к Apache, как CGI-приложение, то копирования дополнительной библиотеки не требуется.
5. Перезагрузите Apache
Чтобы все внесенные изменения вступили в силу перезагрузите Apache.
6. Проверьте установку расширения
Чтобы удостовериться, что библиотека для работы с MySQL успешно подключилась к PHP выполните функцию phpinfo(). Просмотрите «фиолетовые таблицы» и найдите в них раздел с именем MySQL. Если такой раздел существует, то значит, что расширение успешно подключилось.
Проверка взаимодействия PHP c MySQL
1. Проверьте запущен ли у Вас сервер MySQL.
Перед тем, как приступить к проверке взаимодействия PHP c MySQL убедитесь, что сервер MySQL у Вас работает. Это можно сделать, открыв список служб Windows: «Пуск» | «Панель Управления» | «Администрирование» | «Службы». Найдите службу с именем MySQL и убедитесь, что она находится в состоянии работы (третий столбец таблицы).
Второй способ убедится, что сервер MySQL работает: нажмите кнопки «Crtl» + «Alt» + «Del» и на вкладке «Процессы» найдите процесс с именем mysqld.exe. Вместо процесса mysqld.exe также могут работать процессы: mysqld-nt.exe, mysqld-max-nt.exe, mysqld-debug.exe.
2. Выполните проверочный php-скрипт
PHP-скрипт, проверяющий взаимодействие PHP с сервером MySQL
= “127.0.0.1” ;
$dbname = “test” ;
$dbuser = “root” ;
$dbpasswd = “” ;
К сожалению, не доступен сервер mySQL
К сожалению, не доступна база данных
Если тест прошел успешно, то на экран будет выведен номер версии сервера MySQL. В противном случае, на экран будут выведены описания произошедших ошибок.
Ошибки при подключении расширения для работы с MySQL
Ошибки вида: Call to undefined function
Все ошибки содержащие фразу «Call to undefined function» указывают, на неподключенное расширение PHP. Если такие ошибки возникают при работы с фунциями MySQL, то это значит, что не подключена библиотека PHP для работы с MySQL – php_mysql.dll
Пример сообщения об ошибках:
Fatal error: Call to undefined function mysql_connect()
in C:\www\panel\htdocs\test.php on line 7
Для решения этой проблемы обратитесь к началу статьи.
Нет блока MySQL в phpinfo()
Если все сделано правильно, но расширение для работы с MySQL не подключается и даже отсутствует блок MySQL в выводе функции phpinfo(), то проверьте версию библиотеки libmysql.dll, расположенную в c:/windows/system32.
Примечание
Одноименная библиотека libmysql.dll поставляется также вместе с сервером MySQL. Однако, это разные библиотеки и если в директории c:/windows/system32 будет лежать именно библиотека от MySQL, то PHP не сможет подключить расширение. Библиотека libmysql.dll может быть автоматически скопирована в c:/windows/system32 при установке сервера MySQL. Наличие в системной директории библиотека от старой версии PHP также может стать препятствием.
Чистая страница проверочного скрипта
В качестве скрипта для проверки взаимодействия PHP c MySQL на нашем сайте часто используется скрипт, приведенный в листинге ниже. Его отличия от аналогичного php-скрипта, приведенного в начале статьи, – символы @ перед вызовом функций mysql_connect() и mysql_select_db(). Эти символы используются для подавления вывода ошибок в браузер. Их полезно применять на работающем сайте в Интернете чтобы предотвратить вывод в браузер конфиденциальной информации, но при отладке скриптов запрет вывода ошибок не нужен, т.к. он может затруднить диагностику проблемы.
PHP-скрипт, проверяющий взаимодействие PHP с сервером MySQL
= “127.0.0.1” ;
$dbname = “test” ;
$dbuser = “root” ;
$dbpasswd = “” ;
К сожалению, не доступен сервер mySQL
К сожалению, не доступна база данных
Если в результате выполнения данного скрипта выводится чистая страница, то, как правило, это значит, что к PHP не подключена библиотека php_mysql.dll. Чтобы более точно диагностировать проблему проведите следующую последовательность действий.
Ошибка: Can’t connect to MySQL server on ‘127.0.0.1’ (10061)
Если при выполнении проверочного php-скрипта выдается ошибка подобная следующей:
Warning: mysql_connect() [function.mysql-connect]:
Can’t connect to MySQL server on ‘127.0.0.1’ (10061)
in C:\www\panel\htdocs\test.php on line 7
Это свидетельствует о том, что не работает сервер базы данных MySQL. Более точная диагностика этой проблемы приведена выше в пункте 1 подраздела «Проверка взаимодействия PHP c MySQL».
Ошибка: Access denied for user ‘root’@’localhost’ (using password: YES)
Наличие следующей ошибки:
Warning: mysql_connect() [function.mysql-connect]:
Access denied for user ‘root’@’localhost’ (using password: YES)
in C:\www\panel\htdocs\test.php on line 7
PHP-подключение к БД MySQL (Два Способа с Примерами)
Если вы новичок в разработке сайтов, вам может пригодиться это руководство, объясняющее, как настроить подключение к БД MySQL посредством PHP-скрипта. С помощью этого навыка вы сможете изменять, просматривать и управлять таблицами, созданными в базе данных MySQL. И сейчас мы покажем вам самые простые способы это сделать. Давайте начнём!
Получите скидку до 90% на наши планы хостинга с поддержкой PHP.
Создание Базы Данных MySQL (При необходимости)
Этот шаг можно пропустить, если у вас уже есть база данных MySQL. Если вы являетесь пользователем Hostinger, вы можете легко создать новую БД через hPanel — панель управления хостингом Hostinger, следуя простой инструкции:
Инструкции по созданию базы данных MySQL с помощью cPanel см. в этом руководстве (англ.). Однако имейте в виду, что это пустые базы данных. Вам нужно будет заполнить их данными, прежде чем вы сможете ими управлять.
Запишите учётные данные только что созданной базы данных MySQL для следующего шага. А также не забудьте имя пользователя и пароль к БД!
Два способа PHP-подключения к БД MySQL
Есть два метода подключения к базе данных MySQL с помощью PHP: MySQLi и PDO.
MySQLi расшифровывается как MySQL Improved. Это эксклюзивное расширение MySQL, которое добавляет новые функции в интерфейс базы данных. Функции MySQLi являются как процедурными, так и объектно-ориентированными, причём первую парадигму расширение унаследовало от более ранней версии MySQL.
Сама MySQL разбивает задачу на линейные, пошаговые процедуры, что затрудняет внесение изменений, поскольку вам приходится редактировать код сверху. Между тем MySQLi рассматривает данные как набор взаимозаменяемых объектов с функциями, позволяя пользователям легко добавлять или удалять данные.
PDO расшифровывается как PHP Data Object, или объект данных PHP. В отличие от MySQLi, PDO является только объектно-ориентированным методом. Он поддерживает ряд различных типов баз данных, использующих PHP, таких как MySQL, MSSQL, Informix и PostgreSQL.
Исходные функции mysql_ устарели. Их лучше не использовать, поскольку они небезопасны и больше не поддерживаются.
Одна из наиболее важных функций, которую поддерживают оба метода — это подготовленные выражения (prepared statements). Она сокращает время, необходимое MySQL для выполнения повторяемого запроса. Эта функция также используется для предотвращения SQL-инъекций при внесении изменений в базу данных.
Какой бы метод вы ни использовали, вам понадобится правильная информация для подключения к созданной вами базе данных MySQL. Здесь вам пригодятся ранее сохранённые данные БД.
Вам также потребуется правильное имя сервера, или имя хоста для конфигурации. Hostinger использует “localhost” в качестве имени хоста своего сервера MySQL. Это имя, которое вы будете использовать, если загрузите свой PHP-скрипт на тот же сервер, что и база данных.
С другой стороны, если вы подключаетесь к базе данных из удалённого места (например, со своего компьютера), вам придётся использовать IP-адрес MySQL-сервера. Чтобы получить дополнительную информацию, обратитесь к своему хостинг-провайдеру. Он предоставит вам актуальную информацию о том, какое имя использовать в качестве имени хоста.
PHP-подключение к БД MySQL с MySQLi
Выполните следующие действия, чтобы подключить PHP-скрипт к MySQL посредством MySQLi:
Основным методом, используемым в этом скрипте, является mysqli_connect (). Это внутренняя функция PHP для установления нового соединения с сервером MySQL.
Если попытка соединения была неудачной, выполняется функция die(). Она убивает наш скрипт и выдаёт сообщение об ошибке подключения, которое мы прописали. По умолчанию в сообщении об ошибке подключения MySQL будет указано «Connection failed», за которым следует точное сообщение об ошибке с описанием проблемы.
С другой стороны, если MySQL-соединение установлено успешно, мы увидим сообщение «Connected successfully».
Последняя часть кода, mysqli_close, позволяет закрыть соединение с базой данных вручную. Если вы ничего не укажите, соединения MySQL закроются автоматически после завершения скрипта.
PHP-подключение к БД MySQL с PDO
Другой метод подключения к БД MySQL с использованием PHP-скрипта — через PDO. В целом он похож на предыдущий, но с некоторыми особенностями:
Объяснение Скрипта PDO
Для подключения к базе данных PDO необходимо создать новый объект PDO с именем источника данных (DSN), именем пользователя и паролем.
DSN определяет тип базы данных, имя базы данных и любую другую информацию, относящуюся к базе данных, если это необходимо. Это переменные и значения, указанные нами в файле dbconfig.php, на которые один раз ссылается строка require_once в файле databaseconnect.php.
В последнем примере вы найдёте код try… catch... Это означает, что скрипт попытается подключиться к MySQL, используя предоставленный код, но в случае возникновения проблемы будет выполнен код в разделе catch. Вы можете использовать блок catch для отображения сообщений об ошибках подключения или запустить альтернативный код в случае сбоя блока try.
Проверка Подключения и Устранение Распространённых Ошибок
Чтобы проверить, успешно ли установлено соединение, войдите в свой домен так: vashdomen/databaseconnect.php. Если вы назвали PHP-файл другим именем, обязательно укажите правильное название.
Если всё работает хорошо, вы увидите «Connected successfully» или другой вариант этого сообщения.
В случае возникновения проблемы при попытке установить соединение, вы увидите сообщения об ошибке. Они отличаются для MySQLi и PDO.
Ошибка при Неправильном Пароле
Эта ошибка возникает, если мы меняем пароль или какие-либо учётные данные в PHP-коде (но не меняем их в реальной базе данных).
Если вы видите сообщение «Access denied» или «Could not connect to database», сопровождаемое “(using password: YES)”, первое, что нужно сделать, это проверить данные для доступа к БД. Возможно, вы сделали опечатку или пропустили какую-то часть.
Не Удаётся Подключиться к MySQL-серверу
Если вы видите сообщение «Can’t connect to MySQL server on ‘server’ (110)» в MySQLi, это означает, что скрипт не получил ответа от сервера. Это происходит, когда мы устанавливаем «server» вместо «localhost» в качестве $servername, и имя не распознаётся.
Сообщение об аналогичной ошибке в PDO будет выглядеть как: «Connection failed: SQLSTATE[Hy000] [2002]». А за ним следует уточнение, что узел MySQL не найден. Причина и решение этой проблемы такое же, как и в предыдущем примере.
И, конечно же, всегда важно помнить одно золотое правило устранения ошибок: проверять журнал ошибок вашего сайта.
Журнал находится в той же папке, где запущен скрипт. Например, если мы запускаем сценарий в public_html, error_log будет в той же папке.
Итоги
В этом руководстве мы показали, как происходит PHP-подключение к БД MySQL с помощью MySQLi и PHP Data Objects (PDO).
Надеемся, что это руководство было полезно для тех, кто только начинает заниматься веб-разработкой. В конце концов, подключение к базе данных — это первый и самый важный шаг при работе с более сложными скриптами и конфигурациями.
Если у вас возникнут какие-либо вопросы после прочтения, не стесняйтесь и напишите нам в комментариях ниже.
Ольга уже около пяти лет работает менеджером в сфере IT. Написание технических заданий и инструкций — одна из её главных обязанностей. Её хобби — узнавать что-то новое и создавать интересные и полезные статьи о современных технологиях, веб-разработке, языках программирования и многом другом.
Работа с MySQL в PHP
PHP поддерживает работу с базой данных MySQL.
Специальные встроенные функции для работы с MySQL позволяют просто и эффективно работать с этой СУБД: выполнять любые запросы, читать и записывать данные, обрабатывать ошибки.
Сценарий, который подключается к БД, выполняет запрос и показывает результат, будет состоять всего из нескольких строк. Для работы с MySQL не надо ничего дополнительно устанавливать и настраивать; всё необходимое уже доступно вместе со стандартной поставкой PHP.
Что такое mysqli?
mysqli (MySQL Improved) — это расширение PHP, которое добавляет в язык полную поддержку баз данных MySQL. Это расширение поддерживает множество возможностей современных версий MySQL.
Как выглядит работа с базой данных
Типичный процесс работы с СУБД в PHP-сценарии состоит из нескольких шагов:
Функция mysqli connect: соединение с MySQL
Но чтобы выполнить соединение с сервером, необходимо знать как минимум три параметра:
Базовый синтаксис функции mysqli_connect() :
Проверка соединения
Первое, что нужно сделать после соединения с СУБД — это выполнить проверку, что оно было успешным.
Эта проверка нужна, чтобы исключить ошибку при подключении к БД. Неверные параметры подключения, неправильная настройка или высокая нагрузка заставит MySQL отвеграть новые подключения. Все эти ситуации приведут к невозможности соединения, поэтому программист должен проверить успешность подключения к серверу, прежде чем выполнять следующие действия.
Соединение с MySQL и проверка на ошибки:
Функция mysqli_connect_error() просто возвращает текстовое описание последней ошибки MySQL.
Установка кодировки
Первым делом после установки соединения крайне желательно явно задать кодировку, которая будет использоваться при обмене данными с MySQL. Если этого не сделать, то вместо записей со значениями, написанными кириллицей, можно получить последовательность из знаков вопроса: ‘. ’.
Вызови эту функцию сразу после успешной установки соединения: mysqli_set_charset($con, “utf8”);
Выполнение запросов
Установив соединение и определив кодировку мы готовы выполнить свои первые SQL-запросы. Вы уже умеете составлять корректные SQL команды и выполнять их через консольный или визуальный интерфейс MySQL-клиента.
Те же самые запросы можно отправлять без изменений и из PHP-сценария. Помогут в этом несколько встроенных функций языка.
Два вида запросов
Следует разделять все SQL-запросы на две группы:
При выполнении запросов из среды PHP, запросы из второй группы возвращают только результат их исполнения: успех или ошибку.
Запросы первой группы при успешном выполнении возвращают специальный ресурс результата. Его, в свою очередь, можно преобразовать в ассоциативный массив (если нужна одна запись) или в двумерный массив (если требуется список записей).
Добавление записи
Вернёмся к нашему проекту — дневнику наблюдений за погодой. Начнём практическую работу с заполнения таблиц данными. Для начала добавим хотя бы один город в таблицу cities.
Выражение INSERT INTO используется для добавления новых записей в таблицу базы данных.
Функция insert id: как получить идентификатор добавленной записи
Теперь у нас есть всё необходимое, чтобы добавить погодную запись.
Вот как будет выглядеть комплексный пример с подключением к MySQL и добавлением двух новых записей:
Чтение записей
В этом примере показано, как вывести все существующие города из таблицы cities:
Чтобы получить действительные данные, то есть записи из таблицы, следует использовать другую функцию — mysqli_fetch_array() — и передать ей единственным параметром эту самую ссылку.
Теперь каждый вызов функции mysqli_fetch_array() будет возвращать следующую запись из всего результирующего набора записей в виде ассоциативного массива.
Цикл while здесь используется для «прохода» по всем записям из полученного набора записей.
Значение поля каждой записи можно узнать просто обратившись по ключу этого ассоциативного массива.
Как получить сразу все записи в виде двумерного массива
Иногда бывает удобно после запроса на чтение не вызывать в цикле mysqli_fetch_array для извлечения очередной записи по порядку, а получить их сразу все одним вызовом. PHP так тоже умеет. Функция mysqli_fetch_all($res, MYSQLI_ASSOC) вернёт двумерный массив со всеми записями из результата последнего запроса.
Перепишем пример с показом существующих городов с её использованием:




