Php подключение к бд mysqli. Как создать подключение к базе данных mysql на php. Использование редактора SQL

Уровень сложности: Несложно

Что вам понадобится:

  • Установленная БД MySQL (например, из комплекта Denwer).
  • Связка Apache+PHP или программа, работающая с базой данных - установленная на втором компьютере.
  • Локальное или Интернет-соединение между компьютером-клиентом и компьютером-сервером.
  • Доступ к пользователю "root" (или любому другому, имеющему полные права) базы данных.

1 шаг

Для начала, сядьте за компьютер, где у вас установлена MySQL. Зайдите в папку, где она у вас установлена (чаще всего это папка вида “X:\usr\mysql”, где X – любая буква жесткого или сетевого диска), и там вы найдете файл “my.cnf”. Если у него значок вида “компьютер со стрелочкой, как у ярлыка” (см. изображение к шагу) – создайте в папке ярлык блокнота (или любого другого текстового редактора, например – ), и для открытия файла “my.cnf” перетаскивайте файл на ярлык текстового редактора; если же значок вида “неизвестный файл” или “текстовый файл” – открывайте любым текстовым редактором.

2 шаг

Найдите строку с параметром “bind-address”, и если в начале строки не стоит решетка (#) – поставьте ее. Не забудьте сохранить файл после редактирования.

3 шаг

Перезапустите БД. Конечно, у каждого свои способы – например, можете “убить” процесс “mysqld.exe” через Диспетчер задач (Ctrl+Alt+Delete), а потом запустить БД сначала. С новыми настройками MySQL будет принимать соединения с других компьютеров; правда, обмена данными не получится, если при подключении не указать имя и пароль пользователя, который имеет право использовать БД с удаленного компьютера.

4 шаг

Подключитесь под пользователем “root” (или любым другим пользователем, имеющем полные права) к базе данных с того же компьютера, где стоит база данных, и выполните следующую команду:

GRANT ALL ON *.* TO ’user’@’%’ IDENTIFIED BY ‘password’ WITH GRANT OPTION

Заменив заранее “user” на имя пользователя, которому будет позволено подключаться к БД с удаленного компьютера, “password” – на пароль, который должен использовать пользователь.
Так же вы можете заменить “*.*” на “db.*” – это позволит пользователю работать только с базой данных “db”; или на “db.table” – тогда пользователь будет еще более ограниченным в правах и сможет работать только таблицей “table” в базе данных “db”. Вызвав команду GRANT несколько раз для одного и того же пользователя, но меня объект, на который даете права, вы можете указать точно, с чем сможет работать пользователь.
Команда GRANT в MySQL 5.1 [англ.]

5 шаг

Теперь вы сможете подключиться к базе данных с удаленного компьютера, используя имя пользователя и пароль, которые вы использовали в комманде GRANT . Для того, чтобы забрать права у пользователя (например, забрать право на работу с определенной базой данных), используйте команду REVOKE :

REVOKE ALL , GRANT OPTION ON *.* FROM ’user’@’%’ IDENTIFIED BY ‘password’

Параметры идут не совсем в том же порядке, что и в предыдущем шаге – но они эквивалентны.
Команда REVOKE в MySQL 5.1 [англ.]

6 шаг

Удалить пользователя (вдруг понадобиться удалить тестового пользователя) можно командой DROP USER :

DROP USER ’user’@’%’ IDENTIFIED BY ‘password’

Обратите внимание, что DROP USER не отключит удаляемых пользователей, если они сейчас подключены к БД; но если они отключатся, то подключиться уже не смогут.
Команда DROP USER в MySQL 5.1 [англ.]

  • "%" в описанных командах обозначает, что пользователь может подсоединиться с любого компьютера. Если написать "localhost" или "127.0.0.1" - только с локального. А можно указать конкретный IP - например, "192.168.0.1".
  • С помощью команды GRANT вы можете сделать, например, двух разных пользователей с одинаковыми именами и паролями, но с разными дозволенными IP-адресами и разными правами. Или два пользователя с одинаковыми именами, но разными паролями. Думайте, что именно вам нужно.

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

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

  • Подключение с помощью расширения Mysqli (рекомендуется)
  • Подключение с помощью PDO (рекомендуется)
  • Подключение с помощью традиционных функций устаревших mysql_ (устар)

Для этого необходимо установить пакет PHP-MySQL.

На основе дистрибутива RedHat включая , использовать yum для установки PHP-MySQL, как показано ниже.

Yum install php-mysql

В зависимости от вашей системы, выше будем устанавливать или обновлять следующие зависимости:

  • php-cli
  • php-common
  • php-pdo
  • php-pgsql

После того, как все установлено, страница phpinfo будет отображать MySQL модуль, как показано ниже:

Для всех приведенных ниже примеров, мы будем подключаться к базе данных MySQL, которая уже существует. Если вы новичок в MySQL, это хорошее место, чтобы начать: .

Примечание: Все, что описано здесь также будет работать с MariaDB, как это работает на MySQL.

1. Подключение на PHP с использованием расширения Mysqli

MySQLi означает MySQL Improved.

Обратите внимание, что в большинстве дистрибутивов (например: CentOS), PHP-MySQLi уже является частью пакета PHP-MySQL. Таким образом, вам не придется искать и устанавливать пакет PHP-MySQLi. Все, что вам нужно сделать, это установить пакет PHP-MySQL, чтобы получить работающее расширение Mysqli на вашей системе.

Создайте следующий файл mysqli.php в DocumentRoot вApache:

connect_error) { die("Ошибка: не удается подключиться: " . $conn->connect_error); } echo "Подключение к базе данных.
"; $result = $conn->query("SELECT name FROM employee"); echo "Количество строк: $result->num_rows"; $result->close(); $conn->close(); ?>

В приведенном выше:

  • MySQLi – Эта функция будет инициировать новое соединение, используя расширение Mysqli. Эта функция будет принимать четыре аргумента:
    1. Имя хоста, где база данных MySQL работает
    2. Имя пользователя для подключения MySQL
    3. Пароль для пользователя mysql
    4. База данных MySQL для подключения.
  • Функция запроса – Используйте ее, чтобы указать ваш запрос MySQL. В этом примере, мы выбираем столбец имени из базы данных employee.
  • Наконец, мы отображаем количество строк, выбранных с помощью переменной num_rows. Мы также закрываем соединение, как показаны выше.

Подключение к базе данных. Количество строк: 4

Примечание: Если вы пытаетесь подключиться к удаленной базе данных MySQL, то вы можете сделать это, чтобы избежать ошибки запрета подключения к хосту: Как разрешить клиенту MySQL подключиться к удаленному серверу MySQL.

2. Подключение при помощи PHP к MySQL с расширением PDO

PDO означает PHP Data Objects.

PDO_MYSQL реализует интерфейс PDO, предоставляемый РНР для подключения программы к базе данных MySQL.

В большинстве дистрибутивов Linux (например, CentOS и RedHat), PHP-PDO пакет уже входит в пакет PHP-MySQL. Таким образом, вам не придется искать и устанавливать пакет PHP-PDO. Все, что вам нужно сделать, это установить пакет PHP-MySQL, чтобы получить работающее расширение PDO_MYSQL PHP в вашей системе.

Создайте следующий файл MySQL-pdo.php в вашим Apache DocumentRoot:

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Подключение к базе данных.
"; $sql = "SELECT name FROM employee"; print "Имя Сотрудника:
"; foreach ($conn->query($sql) as $row) { print $row["name"] . "
"; } $conn = null; } catch(PDOException $err) { echo "Ошибка: не удается подключиться: " . $err->getMessage(); } ?>

В приведенном выше:

  • новый PDO – Создаст новый объект PDO, который будет принимать следующие три аргумента:
    1. Строка подключения MySQL: будет в формате “mysql:host=$hostname;dbname=$dbname”. В приведенном выше примере, БД работает на локальном хосте, и мы подключаемся к базе данных andreyex.
    2. Имя пользователя для подключения к MySQL.
    3. Пароль для пользователя mysql.
  • $sql variable – создание запроса SQL, который вы хотите выполнить. В этом примере, мы выбираем столбец name из таблицы employee.
  • query($sql) – здесь мы выполняем SQL запрос, который мы только что создали.
  • foreach – вот здесь мы пробегаем по вышеуказанным командам и сохраняем их в переменной строке $, а затем мы показываем их с помощью команды печати.
  • В MySQL PDO, чтобы закрыть соединение, просто обнулите значение переменной $conn.

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

Подключение к базе данных. Имя Сотрудника: сайтslan Maria Oleg

3. Подключение на PHP с использованием функций mysql_ (устар)

Используйте этот метод, только если вы используете более старую версию PHP и не можете обновить ее до новой версии по какой-то причине.

Это устаревшее расширение PHP 5.5 версии. Но начиная с PHP 7.0 версии, это не будет работать, так как она была удалена.

Начиная с PHP 5.5 версии, когда вы используете эти функции, они будет генерировать ошибку E_DEPRECATED.

Создайте следующий файл MySQL-legacy.php под Apache DocumentRoot:

"; $result = mysql_query("SELECT name FROM employee"); $row = mysql_fetch_row($result); echo "Сотрудник 1: ", $row, "
\n"; mysql_close($conn); ?>

В приведенном выше:

  • Функция mysql_connect принимает три аргумента: 1) имя хоста, где база данных MySQL работает, 2) Имя пользователя для подключения к MySQL, 3) Пароль для пользователя MySQL. Здесь подключаемся к базе данных MySQL, которая выполняется на локальном сервере, используя имя пользователя root и его пароль.
  • Функция mysql_select_db – Как следует из названия, будет выбирать базу данных, к которой вы хотите подключиться. Это эквивалентно команде «use». В этом примере мы подключаемся к базе данных andreyex.
  • Функция mysql_query – Используйте ее, чтобы указать ваш запрос MySQL. В этом примере, мы выбираем столбец name из базы данных employee.
  • mysql_fetch_row – используйте эту функцию для извлечения строк из запроса SQL, который мы только что создали.
  • Наконец закрыть соединение с помощью команды mysql_close, как показано выше.

При вызове MySQL-legacy.php из вашего браузера, вы увидите следующий вывод, что свидетельствует о том, что PHP был в состоянии подключиться к базе данных MySQL и сделать выборку данных.

Подключение к базе данных. Сотрудник 1: AndreyEx

Вопрос достаточно популярный среди новичков и не уделить этому отдельную статью было бы неправильно. Как с помощью PHP создать подключение к базе данных? Скажу сразу, средств PHP вполне достаточно для полноценной работы с базами и взаимодействию с MySQL. Теперь попытаемся подключиться!

Что нужно для подключения PHP к MySQL?

1. Установленный СУБД и созданная рабочая база данных. Например, в MySQL (Что такое СУБД и MySQL?).
2. Учётная запись пользователя для MySQL с соответствующими правами (Что такое права и привилегии в MySQL?)
3. Соответственно сервер с установленным PHP

Если не выполнить один из этих пунктов, то подключиться не получится.

Алгоритм взаимодействия PHP и MySQL

1. Подключение к БД
2. Отправка запроса и получение результата
3. (Желательно) Закрытие подключения

Теперь подключаемся к базе данных средствами PHP:

Код PHP

$db = mysql_connect("localhost", "Admin", "pass"); // данные пользователя
mysql_select_db ("baseName",$db); // выбираем к какой БД подключаемся
?>
Как Вы видите, для подключения указываются четыре параметра:

1. Имя хоста. Во многих случаях достаточно указать localhost (на этом же хостинге).
2. Имя пользователя, которого Вы зарегистрировали для использования MySQL.
3. Пароль пользователя, которого Вы зарегистрировали для использования MySQL.
4. Название Базы Данных, к которой хотим подключиться. Соответственно у пользователя, которого мы указали, должны быть права для работы в этой БД.

В результате, если что-то указано неверно, то ничего криминального не произойдёт, а скорее всего Вы увидите ошибку. Но будем оптимистами, допустим Вы ввели всё верно.

Ещё один вид подключения:

Код PHP

$host="localhost"; /*хост*/
$user="admin"; /*Имя пользователя*/
$password="12345"; /*Пароль пользователя*/
$db="baseName"; /*Название базы данных*/

Mysql_connect($host, $user, $password); /*Подключение к серверу*/
mysql_select_db($db); /*Подключение к базе данных на сервере*/
?>
Тут я наглядно создаю переменные с примером данных по пользователю и хосту, а потом создаём подключение.

Как прервать (закрыть) подключение к БД в PHP?

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

Код PHP

$user="admin";
$password="12345";
$db="baseName";

// если произошла ошибка
mysql_connect($host, $user, $password) or die("MySQL сервер недоступен!".mysql_error());
mysql_select_db($db) or die("Нет соединения с БД".mysql_error());
?>
Очень важно также то, что проработка сценария прекратится, что убережёт Вас от массы некорректных данных.

Поздравляю! Теперь Вы знаете как подключиться к БД в PHP и закрыть соединение!

Спасибо за внимание!

3 метода подключения к MySQL с PHP с примерами кода


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

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

Для всех приведенных ниже примеров мы будем подключаться к уже существующей базе данных MySQL. Примечание: все, что объясняется здесь, также будет работать с MariaDB, так же как и с MySQL.

1. Подключение к PHP с помощью расширения mysqli
*mysqli означает MySQL Improved

Создайте следующий файл mysqli.php

connect_error) { die("Ошибка: невозможно подключиться: " . $conn->connect_error); } echo "Подключились к базе.
"; $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:

setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); echo "Подключились к базе.
"; $sql = "SELECT id FROM goroda"; print "Список id:
"; foreach ($conn->query($sql) as $row) { print $row["id"] . "
"; } $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.

Создайте файл mysql.php:

"; $result = mysql_query("SELECT id FROM goroda"); $row = mysql_fetch_row($result); echo "id 1: ", $row, "
\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. Повторюсь, лучше использовать два первых способа; о