<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

После прохождения курса Вы без труда сможете создавать любые сайты с использованием фреймворка Yii, причём делать это будете быстро и качественно.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Подключение к базе данных в PHP

Подключение к базе данных в PHP

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

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

Прежде, чем перейти к подключение к базе данных в PHP, давайте разберём алгоритм работы с ними:

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

Подключиться к базе данных через PHP можно следующим образом:

<?php
  $mysqli = new mysqli('localhost', 'Admin', 'pass', 'mybase');
?>

Тут всё интуитивно понятно, однако, сделаю пояснения: мы создаём экземпляр объекта MySQLI, передавая конструктору следующие параметры:

  1. Имя хоста, на котором работает MySQL.
  2. Имя пользователя.
  3. Пароль.
  4. Имя базы данных, с которой мы хотим работать.

Если какие-нибудь данные будут неверные, то, соответственно, конструктор вернёт ошибку, и подключения не будет.

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

<?php
  $mysqli = @new mysqli('localhost', 'Admin', 'pass', 'mybase');
  if (mysqli_connect_errno()) {
    echo "Подключение невозможно: ".mysqli_connect_error();
  }
?>

В данном примере мы проверяем: если были какие-либо ошибки при подключении, то выводим их и заканчиваем выполнение скрипта (функция exit()). Также обратите внимание на оператор подавления ошибок "@", который мы вставляем для того, чтобы убрать сообщение PHP о невозможности подключения, ведь мы это потом сами проверяем и выводим уведомление.

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

<?php
  $mysqli = @new mysqli('localhost', 'Admin', 'pass', 'mybase');
  if (mysqli_connect_errno()) {
    echo "Подключение невозможно: ".mysqli_connect_error();
  }
  $mysqli->close();
?>

Как Вы догадались, закрывает подключение метод close().

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

Копирование материалов разрешается только с указанием автора (Михаил Русаков) и индексируемой прямой ссылкой на сайт (http://myrusakov.ru)!

Добавляйтесь ко мне в друзья ВКонтакте: http://vk.com/myrusakov.
Если Вы хотите дать оценку мне и моей работе, то напишите её в моей группе: http://vk.com/rusakovmy.

Если Вы не хотите пропустить новые материалы на сайте,
то Вы можете подписаться на обновления: Подписаться на обновления

Если у Вас остались какие-либо вопросы, либо у Вас есть желание высказаться по поводу этой статьи, то Вы можете оставить свой комментарий внизу страницы.

Порекомендуйте эту статью друзьям:

Если Вам понравился сайт, то разместите ссылку на него (у себя на сайте, на форуме, в контакте):

  1. Кнопка:

    Она выглядит вот так: Как создать свой сайт

  2. Текстовая ссылка:

    Она выглядит вот так: Как создать свой сайт

  3. BB-код ссылки для форумов (например, можете поставить её в подписи):

Комментарии (31):

vasdom vasdom 19.05.2012 19:28:18

Процедурный стиль <?php $link = @mysqli_connect('localhost', 'fake_user', 'my_password', 'my_db'); if (!$link) { die('Ошибка соединения: ' . mysqli_connect_errno()); } ?>

Ответить

vasdom vasdom 19.05.2012 19:29:55

Что лучше? Объектно-ориентированный стиль или Процедурный стиль? Прикоментуй что где использовать.

Ответить

Admin Admin 19.05.2012 19:36:58

ООП лучше, так как является более современным и более удобным (чтобы это понять, нужно изучать ООП).

Ответить

vasdom vasdom 19.05.2012 19:30:59

Объектно-ориентированный стиль <?php $mysqli = @new mysqli('localhost', 'fake_user', 'my_password', 'my_db'); if ($mysqli->connect_errno) { die('Ошибка соединения: ' . $mysqli->connect_errno); } ?>

Ответить

lodyry lodyry 03.09.2012 23:49:05

Не работает. не соединяет. А "процедурный стиль" работает. в чём подвох??

Ответить

Admin Admin 04.09.2012 11:31:58

Разве что у Вас очень старая версия php, в которой это не поддерживается.

Ответить

lodyry lodyry 04.09.2012 13:30:04

"Денвер" этим летом скачивала. месяц тому. Естественно, последнюю версию. Может, с настройками что не так? Что есть старая версия php?

Ответить

Admin Admin 04.09.2012 14:23:37

Значит проблема может быть только в том, что Вы где-то допускаете ошибку. Если Вы недавно установили Денвер, то у Вас точно всё должно поддерживаться и никаких настроек дополнительных не надо.

Ответить

lodyry lodyry 04.09.2012 15:30:16

Точно по уроку делала. перепроверила код раз 20. База данных пуста. может не в подключении дело. но через"mysqli_connect" получается. вот

Ответить

korjik korjik 03.02.2013 23:49:33

Михаил, такая проблема: Я пытаюсь создать класс для удобной работы с запросами MySQLi. Вот код: <?php class mysqli_class { private $host; private $database; private $name; private $pass; private $link; public $query; public function __construct ($host, $name, $password, $base) { $this -> host = $host; $this -> name = $name; $this -> pass = $password; $this -> database = $base; } public function connect() { if (!($this -> link = new mysqli($this -> host, $this -> name, $this -> pass))) { $this -> error('Не могу подключиться к '.$this -> host); return false; } if (!mysqli_select_db($this -> link, $this -> database)) { $this -> error('Не могу войти в базу '.$this -> database); return false; } } public function query($query) { $this -> connect(); $this -> result = mysqli_query($this -> link, $query) or $this -> error('Не могу выполнить запрос'); return $this -> result; } } ?> А вот само обращение: <?php require('classes\mysqli_class.php'); $mysqli = new mysqli_class('localhost', 'root', 'pass', 'agrobuy'); $mysqli -> query('SELECT * FROM ads ORDER BY ad_id DESC LIMIT 3'); while ($row = mysqli_fetch_array($mysqli -> result)) { } ?> Все ли здесь правильно? У меня сомнения..будто что-то лишнее..хотя вроде работает..

Ответить

Admin Admin 04.02.2013 13:17:39

Раз работает, то пойдёт для начала. Хотя нюансов здесь много. Я через пару недель напишу свой класс и выложу здесь на сайте.

Ответить

Juriy_1990 Juriy_1990 28.02.2013 01:08:49

Делал на локальном сервере соединение с базой данных - вот всё отлично работало,а на реальном сервере зарегился, и теперь выдаёт такую ошибку:"Warning: mysqli::mysqli(): (HY000/1130): Host '***' is not allowed to connect to this MySQL server in /home/***/public_html/blocks/function.php on line 6 Warning: mysqli::query(): Couldn't fetch mysqli in /home/***/public_html/blocks/function.php on line 7" может Вы взглядом мастера увидите сразу, в чём дело?)

Ответить

Admin Admin 28.02.2013 11:05:07

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

Ответить

vegas vegas 21.04.2013 23:55:03

В PHP v.5.1 появился класс PDO (PHP Data Objects). Михаил, если у Вас будет желание и время, напишете статью? Очень хотелось бы увидеть обзор этого класса на человеческом языке ;) Заранее благодарен

Ответить

ural@ ural@ 21.05.2013 10:59:53

Помогите пожалуйста! Подключаюсь к базе данных, вот код:<?php $mysqli = @new Mysqli('localhost', 'MyAdmin', '123456', 'mybase'); if(mysqli_connect_errno()) { echo "Подключение к серверу невозможно. Причина : ".mysqli_connect_error(); exit; } $mysqli->close(); ?> Открываю сайт, пишет:Access denied for user 'MyAdmin'@'localhost' (using password: YES). В чём ошибка? Пароль и пользователь введены правильно! В phpMyadmin созданы!

Ответить

Admin Admin 21.05.2013 14:32:40

Используйте пользователя root и пустой пароль.

Ответить

ural@ ural@ 27.05.2013 19:51:13

Но как избавиться от этой проблемы???Или подскажите как создать пользователя через конфиг. файл.

Ответить

Admin Admin 27.05.2013 21:12:08

http://myrusakov.ru/phpmyadmin-users.html

Ответить

malina95 malina95 07.07.2013 22:11:16

Миша, напиши пожалуйста несколько статей про хранение сессий в базе данных, причём сделай данную статью с готовым классом для работы, в интернете не нашёл ничего кроме теории, напиши про namespace, trait, mvc на ооп(структура распределения классов и сущностей), напиши про MOVE, HMVC, работу с git, причём на статьи по git удели побольше времени, все будут рады что ты пишешь современные и нужные статьи, и ещё что-нибудь про структуирование папок и классов при проектировании сайта, где что должно лежать, и опиши все изветсные архитектуры проектирования. Не напишешь, будешь дураком, сейчас все про это пишут и получают хороший трафик, чем ты хуже?

Ответить

Alexabcdef Alexabcdef 20.01.2014 19:09:17

Михаил, Здравствуйте! Помогите пожалуйста, у меня возникла проблема с добавлением записей в таблицу через PHP. Ошибку не выводит, сколько не пересматривал код - вроде все правильно. Суть ошибки в том, что после обновления страницы в БД записей нету. Там пусто. вот код: <?php $mysqli = new mysqli("localhost", "root", "", "mybase"); $mysqli->query("SET NAMES 'utf8'"); $success = $mysqli->query("INSESRT INTO `users` (`login`, `password`) VALUES ('User1', '".md5(123)."')"); echo $success; $mysqli->close(); ?>

Ответить

tikkiwiki tikkiwiki 21.01.2014 11:04:15

Александр, проверьте подключение к БД, скорее всего не верно настроенное соединение.

Ответить

Jey-Val-Star Jey-Val-Star 02.12.2014 14:56:25

А есть ли смысл закрывать соединение с бд? В гуле искал - однозначного ответа ненашел типа "само закроется"

Ответить

Ziama Ziama 13.12.2014 20:26:02

Здравствуйте, изучаю курс "Создание и раскрутка сайта от А до Я", пытаюсь подключиться к MySQL, по уроку, но получаю:"Подключение невозможно: Access denied for user 'MyAdmin'@'localhost' (using password: YES) Warning: mysqli::close() [mysqli.close]: Couldn't fetch mysqli in Z:\home\test1.local\www\index.php on line 10" Все делал как в уроке, кроме выбора кодировки, так как все пишу в UTF8, её и поставил и в базе и в коде:"$host="localhost"; $user="MyAdmin"; $password="123456"; $db="mybase"; $mysqli = @new mysqli('localhost', $user, $password, $db); if (mysqli_connect_error()) { echo "Подключение невозможно: ".mysqli_connect_error(); } $mysqli->close();" Подскажите в чем может быть дело, заранее спасибо.

Ответить

alexandrdante alexandrdante 13.12.2014 21:37:30

всё дело в том, что вы не правильно ввели логин и пароль от базы данных =)

Ответить

Ziama Ziama 13.12.2014 21:47:34

Я несколько раз перепроверял, все данные совпадают и логин, и пароль, вот в чём штука... )))

Ответить

alexandrdante alexandrdante 13.12.2014 21:51:57

значит не совпадают,или не имеют доступа к бд. Попробуйте в логин вставить root, а пароль оставить пустым

Ответить

Ziama Ziama 13.12.2014 21:56:52

root, прошёл... Тогда, не понятно, почему не проходит MyAdmin с паролем 123456, как указано в уроке... Как тогда подключать другого пользователя?

Ответить

alexandrdante alexandrdante 13.12.2014 22:31:32

его создать сначала надо,и дать доступ. на локальном сервере не вижу смысла в другом пользователе, на хостинге же всё делается через панель управления,обычно.

Ответить

Ziama Ziama 13.12.2014 22:37:07

Возможно Вы и правы, только не понятно зачем тогда это нужно было включать в урок, если нельзя этим воспользоваться на локальном сервере? И в уроке ведь все работает..

Ответить

alexandrdante alexandrdante 13.12.2014 22:45:37

я вам ещё раз говорю,значит что-то не верно сделали,или упустили. Всё,естественно,работает. Без разницы,сколько раз вы перепроверяли,проверьте ещё раз. Пересмотрите заново,проверьте права на доступ к базе данных mybase у пользователя MyAdmin. Вероятнее всего их просто нет. Либо,пароль не верен всё-таки. Авторизируйтесь через phpmyadmin c данного аккаунта и посмотрите,какие базы данных там видны и есть ли среди них mybase

Ответить

alex-pro100-alex alex-pro100-alex 01.06.2015 14:14:51

Привет программистам! У меня такая проблема: В общем я в программировании еще совсем новичок и не знаю как мне создать "базу данных", в каком файле ее подключить и как с ней работать. Кто может - ПОМОГИТЕ. Чтобы не было лишних вопросов - сразу скажу: Denwer у меня есть и на нем я тестирую движек, который собрал (кое как=)), из текстовых редакторов у меня - Notepad++.

Ответить

Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.