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. Функция принимает четыре аргумента:

    1. localhost имя хоста, на котором запущена база данных MySQL
    2. name - имя пользователя MySQL для подключения
    3. pass - пароль для пользователя mysql
    4. db - база данных MySQL для подключения.

  • qvery - функция запроса MySQL. В этом примере мы выбираем столбец id из базы данных городов.
  • Наконец, мы показываем количество строк, выбранных с использованием переменной num_rows в результате. Мы также закрываем как результат, так и переменную соединения, как показано выше.
Когда вы вызываете вышеуказанный mysqli.php из своего браузера, вы увидите следующий вывод, который указывает, что PHP смог подключиться к базе данных MySQL и получить данные.

Подключились к базе.
Количество строк: 6
2. Подключение из 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, который примет следующие три аргумента:

    1. mysql connect string: он будет в формате «mysql:host=localhost;dbname=db». В приведенном выше примере db работает на localhost, и мы подключаемся к базе данных db.
    2. Имя пользователя MySQL для подключения
    3. Пароль для пользователя mysql

  • переменная $sql - создать запрос sql, который вы хотите выполнить. В этом примере мы выбираем столбец id из таблицы городов.
  • query ($sql). Здесь мы выполняем запрос sql, который мы только что создали.
  • foreach. Здесь мы перебираем результат из указанной выше команды запроса и сохраняем ее в переменной $row, а затем выводим ее с помощью echo.
  • В MySQL PDO, чтобы закрыть соединение, просто установите переменную $conn в значение null.

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

Подключились к базе.
Список id:
1
2
3
4
5
6
3. Подключение из 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 принимает три аргумента:

    1. имя хоста, в котором запущена база данных MySQL;
    2. имя пользователя MySQL для подключения;
    3. пароль для пользователя mysql. Здесь он подключается к базе данных MySQL, которая выполняется на локальном сервере с использованием имени пользователя и его пароля.

  • Функция mysql_select_db. Как следует из названия, она выбирает базу данных, к которой вы хотите подключиться. Эквивалентно команде «use». В этом примере мы подключаемся к базе данных db.
  • Функция mysql_query - используется для указания вашего запроса MySQL. В этом примере мы выбираем столбец id из базы данных городов.
  • mysql_fetch_row. Используйте эту функцию для извлечения строк из SQL-запроса, который мы только что создали.
  • Наконец, закройте соединение, используя команду mysql_close, как показано выше.
Когда вы вызываете вышеуказанный mysql-legacy.php из своего браузера, вы увидите следующий вывод, который указывает, что PHP смог подключиться к базе данных MySQL и получить информацию:

Подключились к базе.
id 1: 1
Вот таким образом можно подключаться к MySQL. Повторюсь, лучше использовать два первых способа; о безопасности я уже писал в одном из своих материалов. Если вам требуется консультация, то пишите мне на электронную почту, скайп или вконтакте - я буду рад помочь вам за небольшое денежное вознаграждение.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегистатьи IT, основы mysql, подключение mysql, mysqli, pdo




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




Все о Smarty
Где искать задачи начинающим программистам
Алгоритм Soundex на C#