При помощи php...
Создание соединения с БД на PHP разными способами :
$conn=mysql_connect($db_hostname, $db_username, $db_password) or die ("Нет подключения к серверу");
mysql_select_db($db_database,$conn) or die ("Нет удалось соединиться с БД");
Пояснения к переменным ниже.
При этом используются функции:
При этом постоянно проверяем на наличие ошибки таким способом: or die ("Ошибка такая то"); - переводится как или умри с такой-то ошибкой - чтобы сразу найти где ошибка.
config.php
// переменные для соединения с БД
$host = "localhost"; / хост
$username = "root"; // пароль для подключения к БД
$password = ""; // пароль для подлючения к базе данных - на локальном компьютере он может иметь пустое значение.
$database_name = "my-dolgi"; // имя БД
// старый способ соедения с БД
mysql_connect($host, $username, $password) or die("Не могу соединиться создать соединение");
// выбрать БД. Если ошибка - вывести
mysql_select_db($database_name) or die(mysql_error());
index.php
require_once "config.php";
$result = mysql_query("SELECT Name, Money FROM Dolg ORDER BY Money DESC LIMIT 5") or die(mysql_error());
";
while ($row = mysql_fetch_assoc($result)) {
";
}
mysql_free_result($result);
// Закрываем соединение
mysql_close();
Данный способ:
config.php
// соедения с БД
$link = mysqli_connect("localhost", "username", "password", "name-database"); // тут вводим прям данные ваши: имя юзера, пароль и имя БД, первое поле обычно localhost
// вывод ошибки соединения
if (!$link) {
echo "Ошибка подключения к БД. Код ошибки: " . mysqli_connect_error();
exit;
}
Обратите внимание - везде используется mysqli , а не mysql !!!
index.php
require_once "config.php";
// Выполнить запрос. Если ошибка - выводим
if ($result = mysqli_query
($link,
"SELECT Name, Money FROM Dolg ORDER BY Money DESC LIMIT 5")) {
Echo "Кому я должен по убыванию:
";
// Выборка результатов запроса
while ($row = mysqli_fetch_assoc
($result)) {
echo $row["Name"] . " с долгом " . $row["Money"] . " рублей.
";
}
// освобождение используемой памяти
mysqli_free_result
($result);
// Закрываем соединение
mysqli_close
($link
);
}
Как видим, некоторые моменты поменялись (выделены курсивом).
3) Объектно-ориентированный метод подключения к бд MySQL - с помощью методов и классов:
Минусы: сложнее и менее восприимчив к ошибкам.
Плюсы: краткость и удобство для программистов с опытом.
$conn = new mysqli($db_hostname, $db_username, $db_password, $db_database);
if($conn->connect_errno){
die($conn->connect_error);
} else {echo "Соединение с БД успешно установлено";}
тут в принципе все интуитивно понятно:
config.php
// соедения с БД
$mysqli = new mysqli ("localhost", "username", "password", "name-database"); // тут вводим прям данные ваши: имя юзера, пароль и имя БД, первое поле обычно localhost
// вывод ошибки соединения
if ($mysqli->connect_error) {
die ("Ошибка подключения к БД: (" . $mysqli->connect_errno . ") " . mysqli_connect_error) ;
}
Обратите внимание - везде используется mysqli , а не mysql !!! и в отличие от предыдущего метода появляются стрелочки "->", которые показывают, что это стиль ООП.
index.php
require_once "config.php";
// Выполнить запрос. Если ошибка - выводим
if ($result = $mysqli->query
("SELECT Name, Money FROM Dolg ORDER BY Money DESC LIMIT 5")) {
Echo "Кому я должен по убыванию:
";
// Выборка результатов запроса
while ($row = $result->fetch_assoc
()) {
echo $row["Name"] . " с долгом " . $row["Money"] . " рублей.
";
}
// освобождение используемой памяти
$result->close()
;
// Закрываем соединение
$mysqli->close
();
}
Задание вам такое - найти отличия.
При соединении с базой данных MySQL используются подготовленные выражения(методом prepare) и в результате большая безопасность и сильно увеличивает быстродействие.
config файл от предыдущего метода! - такой же
index.php
// PDO стиль для связи с MySQL
if ($stmt = $mysqli->prepare("SELECT Name, Voney FROM Dolg ORDER BY Money < ? LIMIT 5")) {
$stmt->bind_param("i", $summa);
$summa = 100000;
//запускаем выполнение
$stmt->execute();
// Объявление переменных для заготовленных значений
$stmt->bind_result($col1, $col2);
Echo "Кому я должен по убыванию:
";
// Выборка результатов запроса
while ($stmt->fetch()) {
echo $col1 . " с долгом " . $col2 . " рублей.
";
}
// освобождение используемой памяти
$stmt->close();
// Закрываем соединение
$mysqli->close();
Как видим, тут намного сложнее и надо изучать PDO - это отдельная тема.
После того, как Вы установили сервер MySQL, подключиться к нему Вы можете только с этой же машины. Сделано это в целях безопасности системы, так как в большинстве случаев MySQL используется в Web, а там в редких случаях разносят web-сервер и сервер баз данных.
В корпоративном же сегменте правильнее использовать 1 сервер под все похожие задачи. Глупо держать MySQL с одной базой данных на каждом сервере, где он может потребоваться. Поэтому сервер баз данных должен быть один, на котором заведено нужное количество баз данных под разные задачи.
Кстати, в Web`е разносят сервер базы данных и web-сервер только в тех случаях, когда мощности одного сервера не хватает. Арендуется выделенный сервер и выноситься на него база данных. Хотелось бы уточнить, что делать это разумно только в пределах одного ДЦ.
В конфигурационном файле самого MySQL есть параметр bind-address , который отвечает за это, поэтому:
Закомментировать эту строку равносильно тому, что присвоить IP-адрес 0.0.0.0 , то есть разрешить подключаться всем. Указать 2 IP-адреса в этой строчке нельзя. Если нужно ограничить подключение к серверу MySQL, нужно использовать возможности iptables.
Теперь через telnet-клиент Вы можете подключиться к серверу базы данных, но для того, чтобы зайти внутрь нужна учетная запись, которой разрешено подключаться не только с localhost. Для этого нужно подключиться к MySQL с самого сервера и создать такого пользователя:
Mysql -u root -p
И командой создаем пользователя:
GRANT ALL PRIVILEGES ON *.* TO "новый_пользователь"@"удаленный_адрес" IDENTIFIED BY "пароль" WITH GRANT OPTION;
Эта строчка создает пользователя с неограниченными правами, что делать не совсем правильно. Правильнее максимально ограничить доступ пользователя, который подключается удаленно. Поэтому команда может выглядеть так:
GRANT SELECT,INSERT,DELETE,UPDATE,CREATE,ALTER ON "имя_базы".* TO "новый_пользователь"@"удаленный_адрес" IDENTIFIED BY "пароль" WITH GRANT OPTION;
Этой командой мы ограничили полномочия пользователя только одной базой данных и действиями с ней.
В этой статье сегодня поговорим о создании подключения к базе данных и обсудим какой вариант лучше использовать процедурный или объектно - ориентированный. Для начала давайте разберем на каком уровне мы находимся, если это уровень полного новичка, тогда мой совет без исключения начать использовать процедурный стиль подключения к базе данных. Ранее я писал статью по этой теме на своем блоге, подробнее о процедурном стиле подключения к базе данный читайте в статье: «Как подключиться к MySQL используя PHP» . Если за плечами есть уже какой нибудь опыт работы с процедурным стилем подключения к базе данных, тогда Вас наверное как и меня мои проекты просто взяли и заставили использовать объектно - ориентированный подход.
Так или иначе мы сейчас разберем этапы построения класса для создания подключения к базе данных MySQL на языке PHP. Нам понадобиться два PHP файла, в один файл мы «положим» класс для создания подключения к базе данных, а во - втором будем работать с этим классом.
Создадим два файла:
Думаю, мы не маленькие уже дети и знаем, что нам нужно для работы с PHP файлами. Установленный веб - сервер Apache, PHP, СУБД MySQL и знает куда эти файлы положить - (для тех, кто не знает или забыл).
Файл в котором храниться класс я выношу в отдельный файл и именую его в формате: имя класса.class.php и я знаю, что храниться у меня в этом файле. Когда в проекте много классов, можно потеряться, поэтому рекомендую именовать файлы с классами в формате описанным выше.
Файл database.class.php:
Давайте сейчас разберем, что было создано на данном шаге. С помощью ключевого слова «class», имени класса - DataBase и фигурный скобок мы создали тело класса. В созданном классе мы создали два свойства, в $mConnect - где храниться результат соединения с базой данных и $mSelectDB - где храниться результат выбора базы данных. Вы могли заметить ключевые слова в каждом свойстве - public и static. О чем они говорят? Public означает, что свойство доступно из вне класса, а static дает возможность обращаться или вызывать свойство без создания экземпляра класс, что очень часто удобно в работе.
Добавим метод Connect() для создания соединения с базой:
".mysql_error()."
"; exit(); return false; } // Возвращаем результат return self::$mConnect; } } ?>Функция mysql_connect() создает соединение с базой данных, результат выполнения сохраняет в $mConnect. Далее идет проверка конструкцией IF: Если подключение не прошло успешно, вывести сообщение об ошибке… Иначе PHP проигнорирует блок IF и пойдет дальше выбирать базу данных. Функция mysql_select_db() производит выбор имени базы данных, если в базе не существует запрашиваемой база данных, в этом случае программа сообщит пользователю об ошибке. Если все пройдет успешно, соединение с базой данных вернет return.
Добавляем метод Close():
К сожалению, не удалось подключиться к серверу MySQL
"; exit(); return false; } // Пробуем выбрать базу данных self::$mSelectDB = mysql_select_db($name, self::$mConnect); // Если база данных не выбрана, вывести сообщение об ошибке.. if(!self::$mSelectDB) { echo "".mysql_error()."
"; exit(); return false; } // Возвращаем результат return self::$mConnect; } // Метод закрывает соединение с базой данных public static function Close() { // Возвращает результат return mysql_close(self::$mConnect); } } ?>Следующий и уже последний в этом классе метод Close() - закрывает соединение с базой данных, функция mysql_close() закрывает соединение с сервером MySQL и возвращает результат.
Файл index.php:
С помощью функции define() мы создали константы, для хранения параметров соединения с базой данных. Require_once подключает наш класс DataBase в файл index.php.
Давайте вспомним ключевое слово static, которое использовалось в классе DataBase в свойствах и методах данного класса. Это дает нам возможность обращаться к свойствам и методам класса через "::" (два двоеточия). Метод DataBase::Connect(DB_SERVER, DB_USERNAME, DB_PASSWORD, DB_DATABASE), принимает 4 параметра - созданные функцие define() константы, в которых хранится информация о соединения с базой данных. Если соединение пройдет успешно, метод Connect() вернет нам соединение с базой данных. Далее мы сможем работать и выполнять запросы к базе данных. Функция mysql_query() - выполняет запрос к базе данных. Функция mysql_fetch_assoc() - обрабатывает ряд результата запроса и возвращает ассоциативный массив. Конструкция echo выводит версию сервера MySQL. И в завершение метод DataBase::Close() - закроет соединение с базой данных.
Прежде чем перейти к статье, хочу извиниться за задержки в их написании. Сейчас идёт экзаменационная сессия, поэтому далеко не каждый день получается что-нибудь написать, но впредь обязательно наверстаю. В этой статье мы переходим к общению с базами данных через PHP . PHP содержит все возможности для работы с базами с использованием ПО MySQL , и в этой статье мы научимся подключаться к базе данных через PHP .
Есть несколько способов работы с MySQL в PHP . Все эти способы появлялись, затем устаревали, заменяясь новыми. И на данный момент самый последний способ - это объекто-ориентированная модель общения с MySQL. Именно с использованием этого самого современного способа мы и будем работать с базами данных.
Прежде, чем перейти к подключение к базе данных в PHP , давайте разберём алгоритм работы с ними:
Подключиться к базе данных через PHP можно следующим образом:
$mysqli = new mysqli("localhost", "Admin", "pass", "mybase");
?>
Тут всё интуитивно понятно, однако, сделаю пояснения: мы создаём экземпляр объекта MySQLI , передавая конструктору следующие параметры:
Если какие-нибудь данные будут неверные, то, соответственно, конструктор вернёт ошибку, и подключения не будет.
Однако, тут есть один хитрый момент. Дело в том, что если будет ошибка подключения, то выполнение скрипта не будет остановлено. В результате, он начнёт дальше выполнять наш код. В большинстве случаев, при ошибке подключения требуется прекратить выполнение скрипта, поэтому пишут так:
}
?>
В данном примере мы проверяем: если были какие-либо ошибки при подключении, то выводим их и заканчиваем выполнение скрипта (функция exit() ). Также обратите внимание на оператор подавления ошибок "@ ", который мы вставляем для того, чтобы убрать сообщение PHP о невозможности подключения, ведь мы это потом сами проверяем и выводим уведомление.
Давайте выполним третью и последнюю часть алгоритма работы с базами данных - закрытие подключения . В примере ниже мы подключаемся к базе данных , а после проверки на успешность подключения, закрываем это соединение:
$mysqli = @new mysqli("localhost", "Admin", "pass", "mybase");
if (mysqli_connect_errno()) {
echo "Подключение невозможно: ".mysqli_connect_error();
}
$mysqli->close();
?>
Как Вы догадались, закрывает подключение метод close() .
Подвожу небольшой итог: мы с Вами научились открывать и закрывать подключения к базе данных в PHP , а уже в следующей статье мы с Вами научимся отправлять запросы и получать ответы.
В этом документе описывается настройка соединения с базой данных MySQL из IDE NetBeans. После подключения с MySQL можно начать работать в проводнике баз данных среды IDE, создавая новые базы данных и таблицы, заполняя таблицы данными и делая структуру и содержимое баз данных доступными для запросов SQL. Этот учебный курс разработан для начинающих пользователей, обладающих базовым представлением об управлении базами данных, которым необходимо применить знания к работе с MySQL в IDE NetBeans.
IDE NetBeans поставляется с включенной поддержкой для MySQL RDBMS. До получения доступ к серверу баз данных MySQL в IDE NetBeans, необходимо настроить свойства сервера MySQL.
Перед попыткой подключения к серверу базы данных MySQL необходимо убедиться в том, что он запущен на компьютере. Если сервер базы данных не подключен, вы увидите (disconnected) рядом с именем пользователя в узле MySQL Server в окна "Служба" и не сможете развернуть узел.
Для подключения к серверу баз данных убедитесь, что сервер базы данных MySQL запущен на компьютере, щелкните правой кнопкой мыши "Базы данных" > узел "MySQL Server" в окне "Службы" и выберите "Подключить". Может отобразиться запрос на ввод пароля для подключения к серверу.
После подключения сервера вы сможете развернуть узел MySQL Server и просмотреть все доступные базы данных MySQL.
Редактор SQL является широко распространенным способом взаимодействия с базами данных. Для этого в IDE NetBeans имеется встроенный редактор SQL. Обычно редактор SQL доступен с помощью параметра "Выполнить команду" из контекстного меню узла подключения (или дочерних узлов узла подключения). После установления подключения к серверу MySQL, можно создать новый экземпляр базы данных в редакторе SQL. Для продолжения работы с данным учебным курсом создайте экземпляр с именем MyNewDatabase:
После установления подключения к базе данных MyNewDatabase можно начинать изучение принципов создания таблиц, заполнения их данными и изменения данных в таблицах. Благодаря этому для пользователей обеспечивается возможность более глубокого анализа функций проводника баз данных, а также поддержки IDE NetBeans файлов SQL.
База данных MyNewDatabase в настоящее время пуста. В среде IDE таблицу базы данных можно добавить при помощи диалогового окна "Создание таблицы" или посредством ввода запроса SQL и его запуска напрямую из редактора SQL. Можно использовать оба метода.
Для работы с табличными данными можно использовать редактор SQL в IDE NetBeans. Выполняя запросы SQL в базе данных, можно добавлять, изменять и удалять данные в структурах баз данных. Для добавления новой записи (строки) в таблицу Counselor необходимо выполнить действия, описываемые ниже.
Другим способом управления табличными данными в IDE NetBeans является запуск внешнего сценария SQL напрямую в IDE. Если сценарий SQL был создан в другом местоположении его можно просто открыть в IDE NetBeans и запустить его в редакторе SQL.
Для наглядности загрузите файл и сохраните его на компьютере. Этот сценарий предназначен для создания двух таблиц, аналогичных только что созданным таблицам (Counselor и Subject), и немедленного заполнения их данными.
Поскольку этот сценарий перезаписывает уже существующие таблицы, удалите Counselor и Subject , чтобы зафиксировать процесс создания таблиц при выполнении сценария. Удаление таблиц
При нажатии кнопки Yes ("Да") в диалоговом окне Confirm Object Deletion ("Подтверждение удаления объекта") узлы таблиц автоматически удаляются из проводника баз данных.
Выполнение сценария SQL в базе данных MyNewDatabase
Это заключительный раздел учебного курса "Подключение к базе данных MySQL". В этом документе демонстрируется настройка MySQL на компьютере пользователя и настройка соединения с сервером баз данных из IDE NetBeans. Также были рассмотрены методы работы с MySQL в обозревателе баз данных среды IDE при создании экземпляров баз данных и таблиц, заполнении их данными и выполнении запросов SQL.
Более подробные учебные курсы представлены на следующих ресурсах: