3 метода подключения к MySQL с PHP с примерами кода
Чтобы начать пользоваться базой данных MySQL, надо в первую очередь понять, как подключиться из вашей пользовательской PHP-программы (скрипта) к этой самой базе данных MySQL.
В этой статье описаны следующие три метода, а также соответствующие примеры PHP-кода, в которых объясняется, как подключиться к вашей базе данных из PHP.
Для всех приведенных ниже примеров мы будем подключаться к уже существующей базе данных MySQL. Примечание: все, что объясняется здесь, также будет работать с MariaDB, так же как и с MySQL.
1. Подключение к PHP с помощью расширения mysqli
*mysqli означает MySQL Improved
Создайте следующий файл mysqli.php
<?php $conn = new mysqli("localhost", "name", "pass", "db"); if ($conn->connect_error) { die("Ошибка: невозможно подключиться: " . $conn->connect_error); } echo 'Подключились к базе.<br>'; $result = $conn->query("SELECT id FROM goroda"); echo "Количество строк: $result->num_rows"; $result->close(); $conn->close(); ?>В приведенном выше коде:
- mysqli - эта функция инициирует новое соединение с использованием расширения mysqli. Функция принимает четыре аргумента:
- localhost имя хоста, на котором запущена база данных MySQL
- name - имя пользователя MySQL для подключения
- pass - пароль для пользователя mysql
- db - база данных MySQL для подключения.
- qvery - функция запроса MySQL. В этом примере мы выбираем столбец id из базы данных городов.
- Наконец, мы показываем количество строк, выбранных с использованием переменной num_rows в результате. Мы также закрываем как результат, так и переменную соединения, как показано выше.
Подключились к базе. Количество строк: 62. Подключение из PHP MySQL PDO Extension
*PDO означает объекты данных PHP
Драйвер PDO_MYSQL реализует интерфейс PDO, предоставляемый PHP, для подключения из вашего PHP-скрипта к базе данных MySQL.
Создайте следующий файл mysql-pdo.php:
<?php try { $conn = new PDO("mysql:host=localhost;dbname=db", "name", "pass"); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo 'Подключились к базе.<br>'; $sql = 'SELECT id FROM goroda'; print "Список id:<br>"; foreach ($conn->query($sql) as $row) { print $row['id'] . "<br>"; } $conn = null; } catch(PDOException $err) { echo "Ошибка: невозможно подключиться: " . $err->getMessage(); } ?>В приведенном выше:
- new PDO - создаст новый объект PDO, который примет следующие три аргумента:
- mysql connect string: он будет в формате «mysql:host=localhost;dbname=db». В приведенном выше примере db работает на localhost, и мы подключаемся к базе данных db.
- Имя пользователя MySQL для подключения
- Пароль для пользователя mysql
- переменная $sql - создать запрос sql, который вы хотите выполнить. В этом примере мы выбираем столбец id из таблицы городов.
- query ($sql). Здесь мы выполняем запрос sql, который мы только что создали.
- foreach. Здесь мы перебираем результат из указанной выше команды запроса и сохраняем ее в переменной $row, а затем выводим ее с помощью echo.
- В MySQL PDO, чтобы закрыть соединение, просто установите переменную $conn в значение null.
Когда вы вызываете вышеуказанный скрипт mysqli.php из своего браузера, вы увидите следующие строки; они означают, что PHP смог подключиться к базе данных MySQL и получить информацию:
Подключились к базе. Список id: 1 2 3 4 5 63. Подключение из PHP c использование устаревших функций mysql
Используйте этот метод, только если вы используете более старую версию PHP и по какой-то причине не можете обновить ее до новой версии. Рекомендуется использовать метод №2 и метод №3, показанные выше, вместо этого метода. Я включил этот метод только для справки, а не как рекомендацию для использования.
Это конкретное расширение было устарело от версии PHP 5.5. Но, начиная с версии PHP 7.0, это даже не будет работать, поскольку оно было удалено. Начиная с версии PHP 5.5, когда вы используете эти функции, она будет генерировать ошибку E_DEPRECATED.
Именно поэтому кстати, хотя я и рекомендую своим заказчикам в новых проектах использовать последние версии PHP, для старых советую переходить с осторожностью. Обратная совместимость увы, не всегда работает.
Создайте файл mysql.php:
<?php $conn = mysql_connect('localhost', 'name', 'pass'); mysql_select_db("db"); if (!$conn) { die('Ошибка: невозможно подключиться: ' . mysql_error()); } echo 'Подключились к базе.<br>'; $result = mysql_query('SELECT id FROM goroda'); $row = mysql_fetch_row($result); echo "id 1: ", $row[0], "<br>\n"; mysql_close($conn); ?>В приведенном выше:
- Функция mysql_connect принимает три аргумента:
- имя хоста, в котором запущена база данных MySQL;
- имя пользователя MySQL для подключения;
- пароль для пользователя mysql. Здесь он подключается к базе данных MySQL, которая выполняется на локальном сервере с использованием имени пользователя и его пароля.
- Функция mysql_select_db. Как следует из названия, она выбирает базу данных, к которой вы хотите подключиться. Эквивалентно команде «use». В этом примере мы подключаемся к базе данных db.
- Функция mysql_query - используется для указания вашего запроса MySQL. В этом примере мы выбираем столбец id из базы данных городов. mysql_fetch_row. Используйте эту функцию для извлечения строк из SQL-запроса, который мы только что создали.
- Наконец, закройте соединение, используя команду mysql_close, как показано выше.
Подключились к базе. id 1: 1Вот таким образом можно подключаться к MySQL. Повторюсь, лучше использовать два первых способа; о безопасности я уже писал в одном из своих материалов. Если вам требуется консультация, то пишите мне на электронную почту, скайп или вконтакте - я буду рад помочь вам за небольшое денежное вознаграждение.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.
Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.