Подключение к базе данных
Для работы с базой данных ISPmanager использует систему управления базами данных (СУБД). Чтобы подключиться к ней через веб-интерфейс, используйте:
- phpMyAdmin — веб-интерфейс для работы с СУБД MySQL;
- phpPgAdmin — веб-интерфейс для работы с СУБД PostgreSQL.
- Перейдите в Базы данных → кнопка Web интерфейс. Для СУБД MySQL откроется веб-интерфейс phpMyAdmin. Для СУБД PostgreSQL — phpPgAdmin. Логин и пароль пользователя указываются автоматически.
- Нажмите Продолжить. Откроется веб-приложение для работы с базой данных.
Подробнее о работе с веб-интерфейсами см. на официальном сайте phpMyAdmin и phpPgAdmin.
Подключение к базе данных
Создание таблицы при загрузке сайта
Для начала у вас должен быть установлен PHP. Чтобы получить версию, запускаем:
php -v
Вот такой ответ должен прийти:
Теперь установим сервер MySQL. Для этого открываем терминал и запускаем:
sudo apt-get install mysql-server
Вводим пароль, чтобы начать установку, и нажимаем на Enter.
Проверяем, установлен ли MySQL, этой командой:
sudo mysql
Если установка прошла успешно, выводится примерно следующее:
Теперь для доступа к базе данных с использованием программы на PHP нужно передать в качестве аргументов в SQL-запросе имя пользователя и пароль. Поэтому создадим пользователя с паролем и предоставим ему права доступа к базе данных.
Нового пользователя и пароль создаем, выполняя следующую команду:
sudo mysql -u rootCREATE USER 'newuser'@'localhost' IDENTIFIED BY 'password';
Теперь предоставим пользователю разрешения на доступ к базе данных, а заодно убедимся, что эти права доступа отображаются (для этого задействуем команду flush ):
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'localhost';FLUSH PRIVILEGES;
И для доступа к MySQL в Google Cloud:
GRANT ALL PRIVILEGES ON `%`.* TO 'newuser'@'localhost';
Для привязки ко всем адресам запускаем это:
#bind-address = 127.0.0.1
Для создания нового пользователя и пароля нужно выполнить указанные выше команды. После добавления нового пользователя выходим и перезапускаем сервер MySQL:
exit
service mysql restart
Обратите внимание: в случае с PHP версией 7+ для правильного выполнения команд MySQL необходимо использовать расширение MySQLi. Функции MySQLi позволяют получать доступ к серверам баз данных MySQL.
Для установки расширения MySQLi запускаем:
Sudo apt Install php-mysqli
Теперь все готово к выполнению программ на PHP с интегрированием MySQL. Переходим к решению сформулированной выше задачи.
Первым делом создадим базу данных на сервере MySQL. Для этого подключимся к серверу MySQL:
sudo mysql
Для того, чтобы создать таблицу, сначала нужно создать базу данных. Следующей командой создаем базу данных с названием «test»:
create database test;
Дальше эту базу данных нужно выбрать:
use test;
exit
Код для создания таблицы при загрузке сайта
База данных готова, теперь напишем код для создания таблицы при загрузке сайта.
Как было указано в необходимых условиях, в качестве хоста будет использоваться Apache2, поэтому выполняем такие команды:
cd /var/www/html
vim sqltest.php
С их помощью создается файл и открывается редактор Vim.
Копируем и вставляем в редактор следующий код:
creating mysql tables
$dbhost = 'localhost';
$dbuser= 'newuser';
$dbpass = 'password';
$conn = mysqli_connect($dbhost , $dbuser , $dbpass,"test");
if(!$conn) die('Could not connect:'.mysqli_error($conn));
>
echo 'Connected successfully ';
$sql="CREATE TABLE student(".
"USN INT NOT NULL,".
"Name VARCHAR(100) NOT NULL,".
"Marks VARCHAR(40) NOT NULL);";
mysqli_select_db($conn,'test');
$retval=mysqli_query($conn,$sql);if(! $retval) die('Could not create table:'.mysqli_error($conn));
>
echo "Table created successfully\n";
mysqli_close($conn);
?>
В строках 7, 8 и 9 объявляются переменные, в которых сохраняются имя пользователя, пароль и localhost. Дальше они задействуются в строке 10 и передаются в качестве параметров в команду mysqli_connect , которой инициируется соединение с сервером MySQL. Если соединение установить не удалось, для отображения ошибки используется оператор if и mysqli_error() . Затем пишется запрос на создание таблицы, который присваивается переменной sql . И запускается запрос для выбора базы данных test . После чего запускается mysqli_query для создания таблицы посредством передачи в качестве параметров переменных sql и connection .
Теперь сохраняем файл и выходим из него, открываем браузер и заходим на этот сайт:
Если все работает правильно, получаем сообщение об успешном создании таблицы.
Если при открытии сайта сообщения не видно, переходим в каталог, в котором создан файл:
cd /var/www/html
И выполняем в терминале следующую команду:
php -S localhost:8000
Открываем браузер и заходим на такой сайт:
Теперь сообщение об успешном создании таблицы будет видно.
Проверим, выполнив в терминале команду:
sudo mysql
use test;
desc student;
Примечания:
1) Имя пользователя MySQL — «newuser», а пароль — «password».
2) Поменяйте все команды с MySQL на MySQLi, если у вас версия PHP 7+ , например mysql_connect станет mysqli_connect , а mysql_error() станет mysqli_error() .
Появление возможных ошибок, и как с ними справиться:
- При выполнении команды создания проверяйте, те ли кавычки используете. Ведь ` и ‘ — это разные знаки.
- Если при выполнении программы есть какая-либо ошибка в SQL-запросе, связанная с форматом, то при присваивании $sql
$sql=”CREATE TABLE student(“.“USN INT NOT NULL,”.“Name VARCHAR(100) NOT NULL,”.“Marks VARCHAR(40) NOT NULL);”;
поставьте в конце запроса вместо точки точку с запятой.
3. Если возникли проблемы с командами MySQLi, выполните следующие команды:
php -v
Затем запишите свою версию PHP. Для этого в первой из следующих четырех команд замените x.x на свою версию PHP:
sudo apt-get install phpx.x-mysqli
sudo service apache2 restart
sudo phpenmod mysqli
sudo service apache2 restart
Так, если у вас версия PHP 7.4, то команда будет sudo apt-get install php7.4-mysqli.
4. Каждый раз, когда заходите на свой сайт на PHP, запускайте в каталоге, где находится программа на PHP, следующую команду:
php -S localhost:8000
И при получении какой-либо ошибки, например такой:
Запускайте эту команду:
fuser -k 8000/tcp
И после выполнения php -S localhost:8000 он заработает. Так как процесс, задействующий этот порт, будет уничтожен и его можно будет использовать.
Еще одна программа на PHP
И вот еще одна программа на PHP для добавления новых записей в таблицу, попробуйте.
Прежде чем выполнять программу, запускаем запрос в MySQL для создания таблицы:
create table book(Acc_no INTEGER(20),Title varchar(50),Author varchar(50),Publisher varchar(50),Edition INTEGER(3));
HTML-код
Deatails
PHP-код:
header('content-type:text/plain');
$db=mysqli_connect('localhost','newuser','password','test');if(!$db) die('Could not connect:');
>$sql="insert into book (Acc_no,Title,Author,Publisher,Edition)".
"values('$_REQUEST[Acc_no]',".
"'$_REQUEST[Title]','$_REQUEST[Author]',".
"'$_REQUEST[Publisher]','$_REQUEST[Edition]');";mysqli_select_db($db,'test');
$retval=mysqli_query($db,$sql);if(! $retval) die('Could not insert values');
>echo "Record Insertion Successful";
?>
- Ключевое слово static в PHP
- Хочешь стать веб-разработчиком? Учи Node.js, а не PHP
- Java убьет ваш стартап. PHP спасёт его
PHP-подключение к БД MySQL (Два Способа с Примерами)

Если вы новичок в разработке сайтов, вам может пригодиться это руководство, объясняющее, как настроить подключение к БД MySQL посредством PHP-скрипта. С помощью этого навыка вы сможете изменять, просматривать и управлять таблицами, созданными в базе данных MySQL. И сейчас мы покажем вам самые простые способы это сделать. Давайте начнём!
Получите скидку до 85% на наши тарифы хостинга с поддержкой PHP.
Создание Базы Данных MySQL (При необходимости)
Этот шаг можно пропустить, если у вас уже есть база данных MySQL. Если вы являетесь пользователем Hostinger, вы можете легко создать новую БД через hPanel — панель управления хостингом Hostinger, следуя простой инструкции:

- Найдите меню «Базы данных MySQL» в разделе «Базы данных».
- Заполните все необходимые поля и нажмите «Создать».
Инструкции по созданию базы данных 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:
- Перейдите в Файловый менеджер ->public_html.
- Создайте новый файл, щёлкнув на соответствующую иконку в верхнем меню.
- Сохраните его как databaseconnect.php. Вы можете заменить имя на любое другое, просто убедитесь, что в качестве расширения используется php.
- Дважды щёлкните по файлу, чтобы открыть его. Скопируйте и вставьте в него следующие строки кода. Замените первые четыре значения после учётными данными, которые вы указали ранее.
echo "Connected successfully"; mysqli_close($conn); ?>
Объяснение Кода MySQLi
Основным методом, используемым в этом скрипте, является mysqli_connect (). Это внутренняя функция PHP для установления нового соединения с сервером MySQL.
В начале нашего кода мы видим несколько объявлений переменных и значений, присвоенных этим переменным. Обычно нам нужно четыре из них, чтобы установить правильное соединение с базой данных: $servername, $database, $username и $password. В коде мы указываем наши данные для доступа к БД как значения для этих переменных, чтобы их можно было передать в функцию.
Если попытка соединения была неудачной, выполняется функция die(). Она убивает наш скрипт и выдаёт сообщение об ошибке подключения, которое мы прописали. По умолчанию в сообщении об ошибке подключения MySQL будет указано «Connection failed», за которым следует точное сообщение об ошибке с описанием проблемы.
С другой стороны, если MySQL-соединение установлено успешно, мы увидим сообщение «Connected successfully».
Последняя часть кода, mysqli_close, позволяет закрыть соединение с базой данных вручную. Если вы ничего не укажите, соединения MySQL закроются автоматически после завершения скрипта.
PHP-подключение к БД MySQL с PDO
Другой метод подключения к БД MySQL с использованием PHP-скрипта — через PDO. В целом он похож на предыдущий, но с некоторыми особенностями:
-
В public_html создайте файл с названием pdoconfig.php и вставьте следующий код. Как всегда, не забудьте заменить значения плейсхолдеров информацией из вашей базы данных. Сохраните и закройте его, когда закончите.
catch (PDOException $pe) < die("Could not connect to the database $dbname :" . $pe->getMessage()); >
Объяснение Скрипта PDO
Для подключения к базе данных PDO необходимо создать новый объект PDO с именем источника данных (DSN), именем пользователя и паролем.
DSN определяет тип базы данных, имя базы данных и любую другую информацию, относящуюся к базе данных, если это необходимо. Это переменные и значения, указанные нами в файле dbconfig.php, на которые один раз ссылается строка require_once в файле databaseconnect.php.
В последнем примере вы найдёте код try… catch... Это означает, что скрипт попытается подключиться к MySQL, используя предоставленный код, но в случае возникновения проблемы будет выполнен код в разделе catch. Вы можете использовать блок catch для отображения сообщений об ошибках подключения или запустить альтернативный код в случае сбоя блока try.
Если соединение установлено успешно, вы увидите сообщение «Connected to $dbname at $host successfully». Однако, если попытка не удалась, код в блоке catch покажет простое сообщение об ошибке и завершит скрипт.
Проверка Подключения и Устранение Распространённых Ошибок
Чтобы проверить, успешно ли установлено соединение, войдите в свой домен так: 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, три з яких вона займається SEO. Написання технічних завдань та інструкцій — один з її основних обов’язків. Її хобі — дізнаватися щось нове і створювати цікаві та корисні статті про сучасні технології, веброзробку, мови програмування, пошукову оптимізацію сайтів та багато іншого.
Взаимодействие с MySQL через mysqli
Библиотека MySQLi представляет альтернативный способ подключения к базе данных MySQL. Причем он предоставляет два подхода: процедурный и объектно-ориентированный. Рассмотрим применение обоих подходов.
Создание подключения в объектно-ориентированном стиле
Для создания подключения к серверу MySQL в объектно-ориентированном стиле применяется конструктор mysqli() , в который передаются настройки подключения — адрес сервера MySQL, имя пользователя и пароль:
$conn = new mysqli("адрес_сервера", "имя_пользователя", "пароль");
Конструктор создает объект mysqli , через который осуществляется взаимодействие с базой данных. Однако если подключение не удалось установить, то устанавливается свойство $conn->connect_error , которое содержит информацию об ошибке. Поэтому перед взаимодействием с MySQL мы можем проверить успешность подключения:
if ($conn->connect_error) < die("Connection failed: " . $conn->connect_error); >
После окончания выполнения скрипта подключение к MySQL закрывается автоматически. Однако мы можем закрыть подключение и до окончания работы скрипта с помощью метода close() :
con ->close();
Теперь соединим все вместе выполним подключение к локальному серверу MySQL:
connect_error)< die("Ошибка: " . $conn->connect_error); > echo "Подключение успешно установлено"; $conn->close(); ?>
Поскольку подключение производится к локальному серверу MySQL, то первый параметр конструктора mysqli — строка «localhost». Второй параметр в качестве имени пользователя использует «root» — пользователь, который содается на сервере MySQL по умолчанию. И третий параметр — пароль пользователя «root».
Подключение в процедурном стиле
Для подключения в процедурном стиле применяется функция mysqli_connect , которая принимает адрес сервера, имя и пароль пользователя:
$conn = mysqli_connect("адрес_сервера", "имя_пользователя", "пароль");
Функция возвращает объект, который используется для подключения к базе данных. Однако если подключение не удалось установить, то функция возвращает false . Поэтому перед взаимодействием с MySQL мы можем проверить успешность подключения:
if (!$conn)
С помощью функции mysqli_connect_error() можно получить информацию об ошибке.
Для закрытия подключения применяется функция mysqli_close() , которая в качестве параметра принимает ранее созданный объект подключения:
mysqli_close($conn);
echo "Подключение успешно установлено"; mysqli_close($conn); ?>