Уроки PHP - урок 3 - Работа с БД MySQL.
Наверно вы думаете, что рано начинать третий урок сразу с работы в БД MySQL. Но поверьте это не так. Изучать PHP как язык для веб-программирования и не изучать его работу с БД, это тоже самое что иметь компьютер без интернета. Да вы можете работать на таком компьютере, но информацию получать вам негде. Поэтому стиснем зубы и начнем писать SQL запросы к БД, даже если мы ничего не знаем про язык SQL.
SQL (Structured Query Language — «язык структурированных запросов») — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в табличных базах данных. SQL основывается на исчислении записей в таблицах.
PHP может работать со многими базами данных: MySQL, PostreSQL, Oracle и многими другими. Мы будем изучать работу php с mysql, потому что эта связка очень популярна при создание сайтов. При этом изучение работы с MySQL позволит вам в будущем работать и с другими БД тоже, потому что SQL это универсальный языки его синтаксис практически во всех табличных БД одинаков.
MySQL — свободная система управления базами данных (СУБД). MySQL является собственностью компании Oracle Corporation, получившей её вместе с поглощённой Sun Microsystems, осуществляющей разработку и поддержку приложения. Распространяется под GNU General Public License или под собственной коммерческой лицензией.
О самом SQL у нас будет много уроков. А пока начнем с простого как подсоединять БД. Для этого создадим еще один метод для нашего класса simpleCMS:
public function connectDB() { }
Это позволит нам вызывать соединение с БД из любой точки кода, где уже есть объект нашего класса. Пожалуй, это очень удобно.
Также нам понадобятся переменные сервера MySQL, пользователя БД и имя БД:
class simpleCMS { public $host = 'localhost'; public $username = 'root'; public $password = '';
Мы определим по умолчанию эти переменные, на тот случай если мы забудим их определить. Я использую денвер поэтому у меня такие настройки MySQL, если вы используете не денвер, а хостинг или выделенный сервер под свой сайт, то вам следует использовать своего пользователя MySQL.
Теперь давайте используем функцию mysql_connect(), для создания соединения c MySQL.
public function connectDB() { $link = mysql_connect($this->host, $this->username, $this->password); if (!$link) { die('Ошибка соединения: ' . mysql_error()); } return $link; }
Давайте теперь разберем как работает функция mysql_connect(). Начнем с того что функции нужно передать три параметра: имя сервера БД, пользователя БД, пароль пользователя БД. Дальше идет функция die, это значит что сработает вывод ошибки в случае, когда соединение не будет установлено. Переменные $this->host, $this->username, $this->password это обращение к свойствам классам. У нас они установлены по умолчанию, поэтому передаются сразу и их можно не определять в методе connectDB().
Функция mysql_connect возвращает переменную соединения $link типа resource, такую же как resource файла, resource папки, поэтому нам нужно будет закрыть это соединение, после окончания работы, чтобы освободить память. Вывод сообщения об успешном соединение можно удалить.
Теперь давайте вызовем наш метод в самом начале файла index.php, сразу после того как подключили файл класса:
$obj = new simpleCMS(); // создаем объект класса управления $db_connection = $obj->connectDB();
Везде где нам нужно будет подключить БД мы будем подключать файл с нашим классом, создавать объект и дальше вызывать метод подключения к БД. Как видите ничего сложного в работе с БД нет.
Также как мы делали создали соединение, то нам нужно его по окончанию работы закрыть. Закрывать соединение мы будем через функцию mysql_close(). Я не буду создавать еще один метод для закрытия соединения (хотя это стоит сделать, когда появится в этом необходимость). Поэтому просто добавлю код:
include_once('class/simpleCMS.php'); // подключаем файл с классом $obj = new simpleCMS(); // создаем объект класса управления $db_connection = $obj->connectDB(); //создание соединения //какая-либо работа с БД mysql_close($db_connection); // закрываем соединения
Думаю, что я объяснил понятно и уже в следующем уроке мы будем писать запросы к БД MySQL. Если что-то осталось не ясно, пишите мне в комментариях.