Работа с MySQL

Оглавление (нажмите, чтобы открыть):

Работа с mysql на php

В этой теме 0 ответов, 1 участник, последнее обновление Васильев Владимир Сергеевич 2 года/лет, 7 мес. назад.

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

начало работы с mysql и php

Итак, для начала нам потребуется локальный сервер, для того чтобы можно было запускать php скрипты и подключаться к базе (дальше буду называть БД, что означает «база данных»). Если у вас еще нет локального сервера, то сначала следует прочитать Установка и настройка localhost, а потом уже приступать к изучению БД mysql и ее СУБД (средство управления базой данных).

Если у вас уже есть этот сервер, то делаем так. Для начала хочу познакомить вас с СУБД PhpMyAdmin, она позволяет управлять (добавлять, удалять, изменять) записями в БД.

Это главная страница СУБД PhpMyAdmin. Отсюда вы можете создать свою БД, и хранить в ней необходимые записи. Это очень удобно при создании сайтов, так как информация структурирована и вы можете очень быстро получить любую запись из БД.

Как уже было сказано, первая часть статьи, знакомство с mysql и phpmyadmin. Думаю теперь вы поняли что такое mysql и мы можем приступать к изучению функционала phpmyadmin. Для начала работы, нам потребуется создать саму БД (базу данных). У нее будет свое имя, по которому мы потом будем ее искать.

Вот общая структура строения базы данных:

Для того чтобы создать БД, впишите в поле ввода под строкой «Создать новую БД» (на главной странице PhpMyAdmin) любое имя (не кириллица!) для будущей базы. Я создам базу данных с именем «baza» . Теперь, следуя схеме строения БД, нам нужно сделать таблицу. Для этого после создания базы, у вас будет такое окно:

Здесь я создаю таблицу с именем users и 3 полями в ней. Дальше phpmyadmin попросит нас задать структуру для каждого поля:

Здесь в столбце «Поле» нужно указать имя, в «Тип» указываем тип данных которые будут там храниться ( INT — это число, VARCHAR — строка или небольшой(!) текст). В «Дополнительно» указываем полю с именем «id» параметр «auto_increament» , что означает, оно будет увеличиваться каждый раз при вставке каких-либо данных, и задаем ему параметр «Первичный ключ» (ставим кругляшок ), это значит, что по первому столбцу мы сможем однозначно идентифицировать поле.

«Однозначно идентифицировать поле» — значит даже если имя и фамилия будут одинаковы, столбец «id» будет иметь разные значения (так как он автоматически увеличивается на единицу каждый раз).

Теперь нажимаем «Сохранить». Тем самым мы создали таблицу users , в которой можем хранить имя и фамилию ( >users . Таблицу мы создавали для хранения записей. А как их туда вставлять? Читайте ниже ��

Выбираем в меню «Вставить» и пишем нужные значения в необходимые поля. Теперь как удалить или изменить значения в базе данных mysql с СУБД PhpMyAdmin… Для удаления просто перейдите в меню «Обзор» и нажмите красный крестик напротив записи:

А для редактирования нажмите на карандаш и замените необходимые поля. Ну вот, на этом урок закончен. Теперь вы можете управлять базой данных mysql используя PhpMyAdmin. В следующем уроке, я научу вас хранить, получать, удалять и обновлять данные в базе используя php. Это очень удобно и практично.

Работа с базой данных mysql из php

Итак, для начала нужно научиться подключаться к уже заведомо созданной БД. Для этого используется вот такой код:

В вышеизложенном коде, я подключался к серверу localhost используя логин root который не требует пароля (поэтому его не указываем). После подключения к базе, мы можем проводить все те операции которые выполняли в СУБД phpmyadmin. То есть вставку, удаление, изменение и получение различной информации. Теперь по пунктам:

Вставка записей в базу данных SQL на php

То есть вставка производится функцией INSERT . Если все прошло успешно, то mysql вернет результат true, или иначе — false.

Полей можно указывать хоть сколько, главное чтобы все они существовали в БД. То есть, к примеру существует таблица в которой есть поля «name» , «surname» и «city» . Для вставки в нее значений будем использовать такой код:

Удаление записей из базы данных SQL на php

Удаление выполняется функцией DELETE . Для этого будет примерно вот такой код:

То есть мы удалим из таблицы users все строки (ну или одну), где столбец name равен значению Ruslan .

Изменение значений в базе данных MySQL на php

Также мы можем вносить изменения в уже существующие записи в таблице. К примеру нам надо заменить значение столбца name в строке, где столбец surname имеет значение Huzin . Для этого выполняем такой код:

Получение значений из базы данных

Теперь самое интересное. Раз мы записали что-то, то ведь должны и получить обратно? К примеру нам нужно достать из таблицы users всю строку где столбец name равен Ruslan . Для этого нам потребуется чуть другой код, нежели в первых примерах. Вот собственно и он:

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

то есть, чтобы достать фамилию из выбранной строки (где имя было Ruslan ), мы на вывод должны написать:

А при выборке из таблицы, писали SELECT * , эта звездочка означает что нужно выбрать все столбцы из строки. Если нам надо, к примеру, выбрать только surname , пишем SELECT `surname` . А для выборки сразу нескольких строк из таблицы, потребуется еще и цикл для их вывода. Это в том случае, если к примеру, строк со столбцом Ruslan будет несколько. Вот код:

Теперь на экран выведутся все строки у которых столбец name равен значению Ruslan .

Вот вы и познакомились с основными функциями управления базой данных mysql напрямую из php скрипта.

Работа с базой данных MySQL средствами PHP (стр. 1 из 4)

РАБОТА С БАЗОЙ ДАННЫХ MySQL СРЕДСТВАМИ РНР

Лекция. Подготовлена Прохоровым В.С.

1. СОЕДИНЕНИЕ РНР-СЦЕНАРИЕВ с таблицами MySQL

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

При взаимодействии РНР и MySQL программа взаимодействует с СУБД посредством совокупности функций.

1.1 Соединение с сервером. Функция mysql_connect

Прежде чем работать с базой данных, необходимо установить с ней сетевое соединение, а также провести авторизацию пользователя. Для этого служит функция mysql_connect()

resource mysql_connect([string $server[,string $username[,string $password]]])

Эта функция устанавливает сетевое соединение с базой данных MySQL, расположенной на хосте $server (по умолчанию это localhost, т.е. текущий компьютер) и возвращает идентификатор открытого соединения. Вся дальнейшая работа ведется именно с этим идентификатором. Все другие функции, принимающие этот идентификатор (дескриптор) в качестве аргумента, будут однозначно определять выбранную базу данных. При регистрации указывается имя пользователя $username и пароль $password (по умолчанию имя пользователя, от которого запущен текущий процесс – при отладке скриптов: root, и пустой пароль):

Переменные $dblocation, $dbuser и $dbpasswd хранят имя сервера, имя пользователя и пароль.

1.2 Разрыв соединения с сервером. Функция mysql_close

Соединение с MySQL – сервером будет автоматически закрыто по завершении работы сценария, либо же при вызове функции mysql_close

bool mysql_close ([resource $link_identifier])

Эта функция разрывает соединение с сервером MySQL, и возвращает true при успешном выполнении операции и false в противном случае. Функция принимает в качестве аргумента дескриптор соединения с базой данных, возвращаемый функцией mysql_connect.

Пример работы с этой функцией:

if (mysql_close($dbcnx)) //разрываем соединение

echo(«Соединение с базой данных прекращено»);

echo(«He удалось завершить соединение»);

1.3 Создание базы данных. Функция CREATE DATABASE

Команда — создание базы данных доступна только администратору сервера, и на большинстве хостингов ее нельзя выполнять:

CREATE DATABASE ИмяБазыДанных

Создает новую базу данных с именем имяБазыданных.

Пример работы с этой функцией:

//Создаем базу данных $dbname – это может делать только суперпользователь

//Если база данных уже существует, будет некритическая ошибка

@mysql_query(‘CREATE DATABASE $dbname’);

Рекомендуется везде использовать апострофы (‘SQL – команда’) в качестве ограничителей строк, содержащих SQL – команды. Этим можно гарантировать, что никакая $ — переменная случайно не будет интерполирована (т.е. не заменится на свое значение), и увеличится безопасность скриптов.

Команда создания базы данных CREATE DATABASE доступна только суперпользователю, и на большинстве хостингов простому пользователю ее выполнить невозможно. Она доступна только администратору сервера.

Для экспериментов создадим базу данных testbase, выполнив SQL-запрос из командной строки. Для этого нужно войти в систему MySQL и ввести в командной строке MySQL:

mysql> create database testbase;

После этого следует набрать:

База данных создана:

1.4 Выбор базы данных. Функция mysql_select_db

До того как послать первый запрос серверу MySQL, необходимо указать, с какой базой данных мы собираемся работать. Для этого предназначена функция mysql_select_db:

bool mysql_select_db(string $database_name [,resource $link_identifier])

Она уведомляет PHP, что в дальнейших операциях с соединением $link_identifier будет использоваться база данных $database_name.

Использование этой функции эквивалентно вызову команды use в SQL-запросе, т. е. функция mysql_select_db выбирает базу данных для дальнейшей работы, и все последующие SQL-запросы применяются к выбранной базе данных. Функция принимает в качестве аргументов название выбираемой базы данных database_name и дескриптор соединения resource. Функция возвращает true при успешном выполнении операции и false — в противном случае:

1.5 Обработка ошибок

Если в процессе работы с MySQL возникают ошибки (например, в запросе не сбалансированы скобки или же не хватает параметров), то сообщение об ошибке и ее номер можно получить с помощью описанных далее двух функций.

Важно аккуратно и своевременно использовать эти функции, потому что иначе отладка сценариев может усложниться.

int mysql_errno ([int $link_identifier])

возвращает номер последней зарегистрированной ошибки. Идентификатор соединения $link_identifier можно не указывать, если за время работы сценария было установлено только одно соединение.

string mysql_error([int $link_identifier])

возвращает не номер, а строку, содержащую текст сообщения об ошибке. Ее удобно применять в отладочных целях. Обычно mysql_error используют вместе с конструкцией or die (), например:

@mysql_connect(«localhost», «user», «password»)

or die(«Ошибка при подключении к базе данных: «.mysql_error());

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

В последних версиях РНР предупреждения в MySQL-функциях по умолчанию не регистрируются.

1.6 Автоматизация подключения к MySQL. Файл ( config.php )

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

Код, ответственный за подключение к MySQL рекомендуется выделить в отдельный файл, а затем подключать с помощью функции include к нужным скриптам.

Имеет смысл помещать функции для соединения, выбора и создания базы данных в тот же файл (config.php), где объявлены переменные с именем сервера $dblocation, именем пользователя $dbuser, паролем $dbpasswd и именем базы данных $dbname:

2. ВЫПОЛНЕНИЕ ЗАПРОСОВ К БАЗЕ ДАННЫХ

2.1 Создание таблицы. Функция CREATE TABLE:

CREATE [IF NOT EXISTS] TABLE Имя Таблицы (ИмяПоля тип, ИмяПоля тип,)

Этой командой в базе данных создается новая таблица с колонками (полями), определяемыми своими именами (ИмяПоля) и указанными типами. После создания таблицы в нее можно будет добавлять записи, состоящие из перечисленных в данной команде полей.

Мастер Йода рекомендует:  Почему Facebook SDK занимает около 16% JavaScript-кода на сайтах и что это значит

Листинг test_11.php. Программа, создающая новую таблицу в базе данных:

Этот сценарий создает новую таблицу people с двумя полями. Первое поле имеет тип INT (целое) и имя id. Второе — тип TEXT (текстовая строка) и имя name.

Если таблица существует, сработает конструкция or die ().

Необязательная фраза if not exists, если она задана, говорит серверу MySQL, что он не должен генерировать сообщение об ошибке, если таблица с указанным именем уже существует в базе данных.

Работа с MySQL в PHP

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

Что такое mysqli?

mysqli (MySQL Improved) — это расширение PHP, которое добавляет в язык полную поддержку баз данных MySQL. Это расширение поддерживает множество возможностей современных версий MySQL.

Как выглядит работа с базой данных

Типичный процесс работы с СУБД в PHP-сценарии состоит из нескольких шагов:

  1. Установить подключение к серверу СУБД, передав необходимые параметры: адрес, логин, пароль.
  2. Убедиться, что подключение прошло успешно: сервер СУБД доступен, логин и пароль верные и так далее.
  3. Сформировать правильный SQL запрос (например, на чтение данных из таблицы).
  4. Убедиться, что запрос был выполнен успешно.
  5. Получить результат от СУБД в виде массива из записей.
  6. Использовать полученные записи в своём сценарии (например, показать их в виде таблицы).

Функция mysqli connect: соединение с MySQL

Перед началом работы с данными внутри MySQL, нужно открыть соединение с сервером СУБД.
В PHP это делается с помощью стандартной функции mysqli_connect() . Функция возвращает результат — ресурс соединения. Данный ресурс используется для всех следующих операций с MySQL.

Но чтобы выполнить соединение с сервером, необходимо знать как минимум три параметра:

Если вы следовали стандартной процедуре установки MySQL или используете OpenServer, то адресом сервера будет localhost , логином — root . При использовании OpenServer пароль для подключения — это пустая строка ‘’, а при самостоятельной установке MySQL пароль ты задавал в одном из шагов мастера установки.

Базовый синтаксис функции mysqli_connect() :

Проверка соединения

Первое, что нужно сделать после соединения с СУБД — это выполнить проверку, что оно было успешным.
Эта проверка нужна, чтобы исключить ошибку при подключении к БД. Неверные параметры подключения, неправильная настройка или высокая нагрузка заставит MySQL отвеграть новые подключения. Все эти ситуации приведут к невозможности соединения, поэтому программист должен проверить успешность подключения к серверу, прежде чем выполнять следующие действия.

Соединение с MySQL устанавливается один раз в сценарии, а затем используется при всех запросах к БД.
Результатом выполнения функции mysqli_connect() будет значение специального типа — ресурс.
Если подключение к MySQL не удалось, то функция mysqli_connect() вместо ресурса вернет логическое значение типа «ложь» — false .
Хорошей практикой будет всегда проверять значение результа выполнения этой функции и сравнивать его с ложью.

Соединение с MySQL и проверка на ошибки:

Функция mysqli_connect_error() просто возвращает текстовое описание последней ошибки MySQL.

Установка кодировки

Первым делом после установки соединения крайне желательно явно задать кодировку, которая будет использоваться при обмене данными с MySQL. Если этого не сделать, то вместо записей со значениями, написанными кириллицой, можно получить последовательность из знаков вопроса: ‘. ’.
Вызови эту функцию сразу после успешной установки соединения: mysqli_set_charset($con, «utf8»);

Выполнение запросов

Установив соединение и определив кодировку мы готовы выполнить свои первые SQL-запросы. Ты уже умеешь составлять корректные SQL команды и выполнять их через консольный или визуальный интерфейс MySQL-клиента.
Те же самые запросы можно отправлять без изменений и из php-сценария. Помогут в этом несколько встроенных функций языка.

Два вида запросов

Следует разделять все SQL-запросы на две группы:

  1. Чтение информации (SELECT).
  2. Модификация (UPDATE, INSERT, DELETE).

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

Добавление записи

Вернёмся к нашему проекту — дневнику наблюдений за погодой. Начнём практическую работу с заполнения таблиц данными. Для начала добавим хотя бы один город в таблицу cities.

Выражение INSERT INTO используется для добавления новых записей в таблицу базы данных.

Составим корректный SQL-запрос на вставку записи с именем города, а затем выполним его путём передачи этого запроса в функцию mysqli_query() , чтобы добавить новые данные в таблицу.

Обратите внимание, что первым параметром для функциии mysqli_query() передаётся ресурс подключения, полученный от функции mysqli_connect() , вторым параметром следует строка с SQL-запросом.
При запросах на изменение данных (не SELECT) результатом выполнения будет логическое значение — true или false.
false будет означать, что запрос выполнить не удалось. Для получения строки с описанием ошибки существует функция mysqli_error($link) .

Функция insert id: как получить идентификатор добавленной записи

Следующим шагом будет добавление погодной записи для нового города.
Погодные записи хранит таблица weather_log, но, чтобы сослаться на город, необходимо знать идентификатор записи из таблицы cities.
Здесь пригодится функция mysqli_insert_id() .
Она принимает единственный аргумент — ресурс соединения, а возвращает идентификатор последней добавленной записи.

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

Чтение записей

Другая частая операция при работе с базами данных в PHP — это получение записей из таблиц (запросы типа SELECT).
Составим SQL-запрос, который будет использовать SELECT выражение. Затем выполним этот запрос с помощью функции mysqli_query() , чтобы получить данные из таблицы.

В этом примере показано, как вывести все существующие города из таблицы cities:

В примере выше результат выполнения функции mysqli_query() сохранён в переменной $result .
Важно понимать, что в этой переменной находятся не данные из таблицы, а специальный тип данных — так называемая ссылка на результаты запроса.

Чтобы получить действительные данные, то есть записи из таблицы, следует использовать другую функцию — mysqli_fetch_array() — и передать ей единственным параметром эту самую ссылку.
Теперь каждый вызов функции mysqli_fetch_array() будет возвращать следующую запись из всего результирующего набора записей в виде ассоциативного массива.

Цикл while здесь используется для «прохода» по всем записям из полученного набора записей.
Значение поля каждой записи можно узнать просто обратившись по ключу этого ассоциативного массива.

Как получить сразу все записи в виде двумерного массива

Иногда бывает удобно после запроса на чтение не вызывать в цикле mysqli_fetch_array для извлечения очередной записи по порядку, а получить их сразу все одним вызовом. PHP так тоже умеет. Функция mysqli_fetch_all($res, MYSQLI_ASSOC) вернёт двумерный массив со всеми записями из результата последнего запроса.
Перепишем пример с показом существующих городов с её использованием:

Как узнать количество записей

Часто бывает необходимо узнать, сколько всего записей вернёт выполненный SQL запрос.
Это может помочь при организации постраничной навигации, или просто в качестве информации.
Узнать число записей поможет функция mysqli_num_rows() , которой следует передать ссылку на результат запроса.

Основы работы с MySQL Workbench: быстрый старт, управление схемой данных

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

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

MySQL Workbench — инструмент для визуального проектирования баз данных, интегрирующий проектирование, моделирование, создание и эксплуатацию БД в единое бесшовное окружение для системы баз данных MySQL.

Должен сказать, что программа действительно великолепная. Она позволяет быстро и с удовольствием накидывать схемы данных проекта, проектировать сущности и связи между ними, безболезненно внедрять изменения в схему и так же быстро и безболезненно синхронизировать её с удалённым сервером. А графический редактор EER-диаграмм, напоминающих забавных таракашек, позволяет увидеть общую картину модели данных и насладиться её лёгкостью и элегантностью 🙂 После первой же пробы этот инструмент становится незаменимым помощником в боевом арсенале веб-программиста.

Скачать MySQL Workbench

Дистрибутив MySQL Workbench доступен на этой странице. Самая свежая версия программы на момент написания статьи — Version 6.1. Перед скачиванием требуется выбрать одну из следующих платформ:

  • Microsoft Windows (доступны MSI Installer и ZIP архив)
  • Ubuntu Linux
  • Fedora
  • Red Hat Enterprise Linux / Oracle Linux
  • Mac OS X

После выбора платформы вам предлагают зарегистрироваться или авторизоваться в Oracle. Если не хотите, внизу есть ссылка «No thanks, just start my download» — жмите на неё 😉

Начало работы

Стартовый экран программы отражает основные направления её функциональности — проектирование моделей баз данных и их администрирование:

В верхней части экрана находится список подключений к MySQL серверам ваших проектов, а список последних открытых моделей данных — в нижней части экрана. Работа обычно начинается с создания схемы данных или загрузки существующей структуры в MySQL Workbench. Приступим к работе!

Создание и редактирование модели данных

Для добавления модели нажимаем плюсик рядом с заголовком «Models» или выбираем «File → New Model» (Ctrl + N):

На этом экране вводим имя базы данных, выбираем кодировку по умолчанию и, если нужно, заполняем поле комментария. Можно приступать к созданию таблиц.

Добавление и редактирование таблицы

Список баз данных проекта и список таблиц в пределах базы данных будет располагаться во вкладке «Physical Schemas». Чтобы создать таблицу, дважды кликаем на «+Add Table»:

Откроется удобный интерфейс для редактирования списка полей и их свойств. Здесь мы можем задать название поля, тип данных, а так же установить для полей различные атрибуты: назначить поле первичным ключом (PK), пометить его Not Null (NN), бинарным (BIN), уникальным (UQ) и другие, установить для поля авто-инкремирование (AI) и значение по умолчанию (Default).

Управление индексами

Добавлять, удалять и редактировать индексы таблиц можно во вкладке «Indexes» интерфейса управления таблицей:

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

Связи между таблицами

Установка внешних ключей и связывание таблиц возможно только для таблиц InnoDB (эта система хранения данных выбирается по умолчанию). Для управления связями в каждой таблице находится вкладка «Foreign Keys»:

Для добавления связи открываем вкладку «Foreign Keys» дочерней таблицы, вводим имя внешнего ключа и выбираем таблицу-родителя. Далее в средней части вкладки в графе Column выбираем поле-ключ из дочерней таблицы, а в графе Referenced Column — соответствующее поле из родительской таблицы (тип полей должен совпадать). При создании внешних ключей в дочерней таблице автоматически создаются соответствующие индексы.

В разделе «Foreign Key Options» настраиваем поведение внешнего ключа при изменении соответствующего поля (ON UPDATE) и удалении (ON DELETE) родительской записи:

  • RESTRICT — выдавать ошибку при изменении / удалении родительской записи
  • CASCADE — обновлять внешний ключ при изменении родительской записи, удалять дочернюю запись при удалении родителя
  • SET NULL — устанавливать значение внешнего ключа NULL при изменении / удалении родителя (неприемлемо для полей, у которых установлен флаг NOT NULL!)
  • NO ACTION — не делать ничего, однако по факту эффект аналогичен RESTRICT

В приведённом примере я добавил к дочерней таблице UserProfile внешний ключ для связи с родительской таблицей User. При редактировании поля userId и удалении позиций из таблицы User аналогичные изменения будут автоматически происходить и со связанными записями из таблицы UserProfile.

Наполнение таблицы базовыми данными

При создании проекта в базу данных часто нужно добавлять стартовые данные. Это могут быть корневые категории, пользователи-администраторы и т.д. В управлении таблицами MySQL Workbench для этого существует вкладка «Inserts»:

Как видно из примера, в случае, если перед записью в базу данных к данным нужно применить какую-то функцию MySQL, это делается с помощью синтаксиса \func functionName(‘data’), например, \func md5(‘password’).

После ввода данных необходимо сохранить их в локальную базу данных нажатием на кнопку «Apply Changes».

Создание EER диаграммы (диаграммы «сущность-связь»)

Для представления схемы данных, сущностей и их связей в графическом виде в MySQL Workbench существует редактор EER-диаграмм. Для создания диаграммы в верхней части экрана управления базой данных дважды кликаем на иконку «+Add Diagram»:

В его интерфейсе можно создавать и редактировать таблицы, добавлять между ними связи различных типов. Чтобы добавить уже существующую в схеме таблицу на диаграмму, просто перетащите её из панели «Catalog Tree».

Для экспорта схемы данных в графический файл выберите «File → Export», а затем один из вариантов (PNG, SVG, PDF, PostScript File).

Импорт существующей схемы данных (из SQL дампа)

Если у нас уже есть схема данных, её можно без труда импортировать в MySQL Workbench для дальнейшей работы. Для импорта модели из SQL файла выбираем «File → Import → Reverse Engineer MySQL Create Script. «, после чего выбираем нужный SQL файл и жмём «Execute >»

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

Мастер Йода рекомендует:  Свой интерфейс командной строки с блэкджеком и Python

Демо-проект из статьи доступен для скачивания по этой ссылке. Желаю успехов и красивых таракашек схем!

Записки инженера

Доступным языком заметки по IT технологиям

Как работать с MySQL?

В данном посте, я разъясню как администрировать MySQL. Я опишу, как решить наиболее часто встречаемые повседневные задачи. Опыт показывает, что даже «гуру» в MySQL, после продолжительного перерыва в работе, забывают напрочь все азы администрирования MySQL. Поэтому данный пост, я вижу полезным.

Что-бы, было удобнее ориентироваться, я привел список вопросов на которые вы найдете ответы. При нажатие на вопрос, вы попадает на его ответ в этом посте.

Итак вы установили MySQL, как с ним работать?

1. Обзор вариантов работы с MySQL

— C помощью PHP (функция mysqli_query)

В PHP с MySQL можно работать как через ООП (методы класса mysqli), так и через функции (mysqli_…() ).

Я кратко покажу как работать с MySQL через функции.

Первым делом, надо установить соединение с MySQL

имя_хоста, имя_пользователя, пароль и имя_бд – строковые значение
Функция возвращает дескриптор соединения с базой, дальше мы будем работать с ним.

И самое важное, сделаем SQL запрос к MySQL.

Где $result_query – результат запроса в виде объекта класса mysqli_result, для извлечения из него информации существует несколько функций, более подробно тут.

допустим, в результате SQL запроса, мы получили некую таблицу, для того чтобы разобрать её по строкам и столбцам, можно использовать следующий код

MYSQLI_ASSOC – константа, указывающая что результат должен быть ассоциативный массив (иначе мы не сможем обращаться к столбцам по их именам)

$row – массив строк возвращенной таблицы

$r – одна строка – ассоциативный массив из значений столбцов, обращаясь к столбцам можно по именам

Далее очистим переменную с результатом

И наконец, закроем соединение с MySQL

Как работать в PHP c MySQL более подробно мы можете узнать в официальной русскоязычной документации тут.

— С помощью phpMyAdmin

На вкладке SQL, вы можете вводить свои запросы

— C помощью командной строки Unix/Linux и Windows

Для входа в СУБД MySQL c помощью командной строки Unix/Linux и Windows необходимо авторизоваться, т.е. указать в качестве кого вы её посещаете.

Для этого пишем

жмем Enter, после чего вам предлагают вести пароль

после удачного ввода пароля вы попадаете в монитор MySQL

В данном режиме вы можете выполняются SQL запросы. Для выхода из него необходимо вести QUIT.

2. Администрирование MySQL

Не касаясь в данном посте подробностей языка SQL, приведу несколько команд, с помощью которых вы сможете узнать версию MySQL, посмотреть список БД, узнать какие таблицы содержит та или иная БД, сделать дамп (резервную копию) БД, восстановить БД из дампа, посмотреть аккаунты пользователей , создать аккаунт пользователя, удалить аккаунт пользователя, изменить пароль root пользователя.

Использовать SQL команды вы можете в PHP скрипте, в мониторе MySQL (командной строке) и с помощью phpMyAdmin. Также, хочу заметить, что регистр в SQL значения не имеет.

Лекции по веб-программированию

База данных – это инструмент, который позволяет хранить и обрабатывать контент сайта, т.е. все медийные материалы, которые показываются пользователю в браузере. С помощью СУБД осуществляется выборка, добавление, удаление и изменение данных. Также с использованием базы данных с легкостью решаются такие задачи как поиск по сайту, разбиение на страницы, регистрация и авторизация пользователей. Именно поэтому в основные инструменты веб-разработчика включается СУБД.

MySQL — это популярная реляционная клиент-серверная СУБД, используемая в разных приложениях. Стандартным языком управления реляционных баз данных является SQL. SQL означает язык структурированных запросов (Structured Query Language), который MySQL использует для коммуникации с другими программами. Сверх того, MySQL имеет свои собственные расширенные функции SQL для того чтобы обеспечить пользователям дополнительный функционал.

Любая программа на языке PHP, которая собирается работать с MуSQL базой данных, должна состоять из следующих обязательных базовых шагов:
1. Установить связь с MySQL сервером.
2. Выбрать базу данных для работы.
3. Посылать команды MYSQL серверу и получать ответы.
4. Обработать результаты.
5. Закрыть связь с MySQL сервером.

Реализовать эти действия можно несколькими способами:
1. Используя стандартные классические функции обращения к БД MySQL.
2. Используя современные функции из расширения mysqli для версий начиная с PHP 5 и MySQL 4.1.
3. Используя классы и методы из расширения mysqli для версий начиная с PHP 5 и MySQL 4.1.

Рассмотрим на примерах как реализуется доступ к БД MySQL каждым из указанных способов.

Классический доступ к БД MySQL

Современное подключение к БД MySQL

Использование функций из расширения mysqli ускоряет большинство операций доступа к БД, иногда достигая 40-кратного увеличения производительности по сравнению с классическим методом. Также повышена безопасность работы с данными и добавлены новые функции.

Подключение к БД MySQL с использованием классов и методов

Объектно-ориентированный интерфейс предоставляет немного более лаконичный и менее восприимчивый к ошибкам способ подключения к базе данных.

Использование шаблонов запросов при обращении к базе данных

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

Процесс работы с шаблонами таков:

1. Подготовить для сервера MySQL шаблон запроса с параметрами.
2. Привязать переменные PHP к параметрам в заготовке запроса.
3. Дать команду серверу на выполнение запроса.
4. Запросить получение нового ряда данных в указанные переменные.

Работа с базами данных SQL в PHP для новичков

Учебник PHP

Практика

Важное

Регулярки

Работа с htaccess

Файлы, папки

Сессии и куки

Работа с БД

Практика по работе с БД в PHP

Перед чтением см. новые уроки раздела «Важное», которые появились выше.

Практика

Движок PHP

Продвинутые БД

Аутентификация

Практика

Введение в ООП

  • Урок №
    новая вкладка с new.code.mu
    Введение
  • Урок №
    новая вкладка с new.code.mu
    Свойства
  • Урок №
    новая вкладка с new.code.mu
    Методы
  • Урок №
    новая вкладка с new.code.mu
    Свойства и $this
  • Урок №
    новая вкладка с new.code.mu
    Методы и $this
  • Урок №
    новая вкладка с new.code.mu
    public private
  • Урок №
    новая вкладка с new.code.mu
    Конструктор
  • Урок №
    новая вкладка с new.code.mu
    Геттеры сеттеры
  • Урок №
    новая вкладка с new.code.mu
    Свойства только для чтения
  • Урок №
    новая вкладка с new.code.mu
    Один класс — один файл
  • Урок №
    новая вкладка с new.code.mu
    Объекты в массиве
  • Урок №
    новая вкладка с new.code.mu
    Начальные значения свойств в конструкторе
  • Урок №
    новая вкладка с new.code.mu
    Начальные значения свойств при объявлении
  • Урок №
    новая вкладка с new.code.mu
    Свойство из переменной
  • Урок №
    новая вкладка с new.code.mu
    Метод из переменной
  • Урок №
    новая вкладка с new.code.mu
    Метод сразу после создания
  • Урок №
    новая вкладка с new.code.mu
    Цепочки методов в классе
  • Урок №
    новая вкладка с new.code.mu
    Класс как набор методов
  • Урок №
    новая вкладка с new.code.mu
    Наследование классов
  • Урок №
    новая вкладка с new.code.mu
    Модификатор protected
  • Урок №
    новая вкладка с new.code.mu
    Перезапись методов родителя
  • Урок №
    новая вкладка с new.code.mu
    Перезапись конструктора родителя
  • Урок №
    новая вкладка с new.code.mu
    Передача по ссылке
    новая вкладка с new.code.mu
    . текст, код Клонирование объектов
  • Урок №
    новая вкладка с new.code.mu
    Использование объектов в другом классе
  • Урок №
    новая вкладка с new.code.mu
    Передача объектов параметрами
  • Урок №
    новая вкладка с new.code.mu
    Сравнение объектов
  • Урок №
    новая вкладка с new.code.mu
    Оператор instanceof
  • Урок №
    новая вкладка с new.code.mu
    Контроль типов
  • Урок №
    новая вкладка с new.code.mu
    Статические методы
  • Урок №
    новая вкладка с new.code.mu
    Статические свойства
  • Урок №
    новая вкладка с new.code.mu
    Объект со статическими свойствами и методами
  • Урок №
    новая вкладка с new.code.mu
    Константы класса
    новая вкладка с new.code.mu
    . текст, код Наследование и private
  • Урок №
    новая вкладка с new.code.mu
    . текст, код final
    новая вкладка с new.code.mu
    . в стек это Анонимные классы
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Полиморфизм

Абстрактные классы и интерфейсы

Трейты

ООП Магия

Практика

Практика: классы как набор методов

  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс ArrayConvertor
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс TagHelper
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс FormHelper
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс TableHelper
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс SessionShell
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс CookieShell
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс FileManipulator
  • Урок №
    новая вкладка с new.code.mu
    . текст, код Практика: класс databaseShell TODO cart корзина flash шаблонизатор роутер контроллер кеш логи фалидатор

Продолжение еще следует

  • .
    по ООП еще много уроков будет, дописываю

Что такое база данных

База данных (сокращенно БД) — это место, в котором хранятся данные сайта.

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

База данных состоит из таблиц. Что такое таблица вы знаете из жизни: это строки и столбцы. А на пересечении строк и столбцов располагаются ячейки.

В базах данных столбцы часто называют полями.

Это легко можно вообразить себе, представив документ Excel. Базой данных будет являться сам документ (книга), а таблицами — каждый лист этой книги.

PhpMyAdmin

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

PhpMyAdmin (читается PHPмайадмин, часто пишут аббревиатуру PMA или ПМА) — это оболочка для работы с базами данных прямо у вас в браузере.

Вы можете править содержимое таблиц, создавать новые базы данных и таблицы — и все это через веб-интерфейс, не зная SQL.

Видео на PhpMyAdmin

Задачи на PhpMyAdmin

Давайте откроем PhpMyAdmin и приступим к изучению его интерфейса.

Чтобы вам было проще с ним освоится, сделайте следующие практические задачи:

  1. Создайте базу данных test.
  2. В ней создайте таблицу users.
  3. В этой таблице сделайте 4 поля (столбца):
    • id (для него нужно поставить галочку AUTO_INCREMENT или A.I.), тип integer,
    • name, тип varchar, 32 символа,
    • age, тип integer,
    • birthday (англ. день рождения), тип date.
  4. Найдите вкладку ‘вставить’ и с ее помощью вставьте несколько строк в эту таблицу При этом поле id заполнять не нужно! Оно заполнится автоматически!
  5. Поредактируйте какую-нибудь запись.
  6. Удалите какую-нибудь запись.
  7. Поменяйте кодировку для таблицы и для всей базы данных (на utf8_general_ci).
  8. Переименуйте таблицу.
  9. Переименуйте базу данных.

AUTO_INCREMENT

Обратите внимание на то, что мы создали поле id и поставили ему галочку AUTO_INCREMENT. Это очень важный шаг!

Теперь при вставке новой записи (строки) в таблицу это поле будет заполняться автоматически уникальным номером.

При этом если мы удалим строку с каким-то id (например 1), то такого id больше никогда не будет.

Зачем нужно поле id?

Затем, чтобы мы всегда могли обратиться к конкретной строке по ее id, например с целью удаления или редактирования.

Типы переменных

В SQL довольно много типов переменных, но чаще всего приходится пользоваться следующими:

  • integer – целочисленный.
  • text – большое текстовое поле.
  • varchar – не очень большое текстовое поле, при этом мы должны задать его размер (он должен быть степенью двойки: 8, 16, 32, 64, 128, 256 и т.д.).
  • date — поле для хранения даты (дата хранится в SQL-формате: год-месяц-день, пример: 2013-06-24).

Как работать с mySQL через PHP

Работа с БД из PHP осуществляется всего лишь с помощью трех функций:

  • mysqli_connect – соединение с сервером и базой данных.
  • mysqli_query — универсальная функция отправки запросов к БД, с помощью нее можно сделать все.
  • mysqli_error — вывод ошибок.

Далее подробнее про каждую из функций.

Устанавливаем соединение с БД

Данный материал есть также в виде видео: https://youtu.be/J8GFuyA_k_8

Прежде, чем начать работать с базой данных из PHP, нужно установить соединение с сервером, на котором эта база находится.

Делается это с помощью функции PHP mysql_connect, которая принимает 3 параметра: имя хоста (сервера), имя пользователя, под которым мы работаем с базой и пароль для этого пользователя.

Если вы работаете на своем компьютере то это будут ‘localhost’, ‘root’ и пароль в виде пустой строки (на некоторых серверах он тоже может быть root). Если ваша база данных в интернете — то эти данные дает вам хостер.

Давайте установим соединение с базой данных:

Посылаем запросы к базе данных

Запросы к базе данных представляют собой обычные строки, которые мы вставляем в функцию PHP mysqli_query (первым параметром это функция принимает переменную, в которую мы записали результат mysqli_connect, в нашем случае это переменная $link):

Принято правило, по которому команды SQL следует писать в верхнем регистре (то есть большими буквами), а все остальное — в нижнем.

Это относиться к командам SELECT, UPDATE, FROM, DELETE, WHERE и другим такого рода.

Конечно, синтаксической ошибки не будет, если вы напишите их маленькими буквами, но принято большими.

Отлавливаем ошибки базы данных

Многие начинающие зачастую не умеют отлавливать ошибки, которые вернула база данных.

Поэтому при работе с БД у них постоянно возникают сложности. Что-то не работает, а что — не понятно, так как ошибок они не видят, так как PHP не выводит ошибки mySQL, если ему об этом не сказать

Чтобы вывести ошибки, следует пользоваться конструкцией or die ( mysqli_error($link) ), которую необходимо добавлять к каждому запросу к БД.

Мастер Йода рекомендует:  Стоит ли отменять пространства имен XML

Смотрите пример: mysqli_query($link, $query) or die( mysqli_error($link) );

Таким образом вы сразу будете получать сообщения об ошибках синтаксиса SQL. Обратите внимание на то, что на рабочем сайте эти конструкции следует удалять, чтобы пользователи и тем более хакеры не видели ошибок БД.

Проблемы с кодировками

Зачастую у новичков возникает проблема с кодировками — казалось бы нормальный русский текст в базу данных записывается абракадаброй или вопросиками.

Чтобы не было проблем с кодировками следует придерживаться простых правил:

  • Базу данных следует создавать в кодировке utf8_general_ci.
  • Документ PHP должен быть в кодировке utf8.
  • Таблицы в БД должны быть в utf8_general_ci.
  • На всякий случай сразу после команды mysqli_connect добавьте такое запрос: mysqli_query($link, «SET NAMES ‘utf8′»);

Начнем практиковаться

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

Итак, создайте свою первую базу данных с помощью PhpMyAdmin.

Назовите ее «test».

Создайте в этой базе новую таблицу.

Назовите ее «workers» (англ. работники).

В ней создайте 4 столбца (столбцы по другому называются поля):

  • id – тип integer, не забудьте поставить ему галочку AUTO_INCREMENT (чтобы в этом столбце номера проставлялись автоматически).
  • name (англ. имя) – тип varchar, размером в 256 знаков.
  • age (англ. возраст) — тип integer.
  • salary (англ. зарплата) — тип integer.

Ее заполните тестовыми данными, как показано в таблице ниже (этот шаг обязателен, так как дальше все задачи будут по этой таблице):

id name age salary
1 Дима 23 400
2 Петя 25 500
3 Вася 23 500
4 Коля 30 1000
5 Иван 27 500
6 Кирилл 28 1000

Итак, у нас есть таблица с работниками фирмы, в которой указаны их имена, возрасты и зарплаты (в $). Далее мы будем работать с этой таблицей.

Тестируем работоспособность

Прежде чем начать работу, следует протестировать работоспособность — попробуем сделать какой-нибудь запрос к нашей базе.

Просто скопируйте этот код и запустите его у себя:

Если var_dump($result) вернет resource, то все работает, если же null – то возникли какие-то проблемы. в новых версиях PHP в $result будет лежать объект с данными (всегда будет непустой). Если обработать его через mysqli_fetch_assoc будет или результат или null (про mysqli_fetch_assoc см ниже или видео https://youtu.be/J8GFuyA_k_8 , которое уже было выше в пункте «Устанавливаем соединение»)

В таком случае проверьте все еще раз, уберите последовательно все ошибки PHP, если таковые есть.

Как достать результат

После того, как мы сделали запрос к базе, в переменной $result будет лежать результат этого действия.

Однако лежит он не в той форме, которая нам нужна в PHP, а в той форме, в которой его прислала нам база.

Достать результат в нормальном виде (в массиве) можно с помощью следующего кода:

Как работает последняя строка?

Функция mysqli_fetch_assoc считывает последовательно каждую строку результата, который прислала нам база.

В цикле for мы считываем построчно результат из базы.

Когда цикл дойдет до последней строки — mysqli_fetch_assoc вернет false и цикл for закончит свою работу.

А результат из БД будет лежать в нормальном виде в массиве $data.

Основы работы с MySQL в PHP

В тексте использован перевод официальной документации сделанный Всероссийским клубом Веб-Мастеров.

Вся работа с базами данных сводится к подключению к серверу, выбору базы данных, посылке запроса, обработке запроса и отключении от баз. Итак, рассмотрим все это дело по пунктам. Для наглядности всего текста представим себе что на локальной машине установлен сервер MySQL. Порт для работы с ним стандартный. Для подключения будем использовать имя пользователя «root» и пароль «no_one».

Подключение

Подключение к базе данных производится с помощью функции «mysql_connect()». Ей передается три параметра: имя сервера (или имя сервера:порт для подключения), имя пользователя и пароль. В случае, если будет сделан второй вызов «mysql_connect()» с теми же аргументами, никакая новая связь не установится — вместо этого, будет возвращен идентификатор связи уже открытой связи (т.е. работа продолжится с той же базой данных). Если вы работаете только с одной базой данных, то идентификатор соединения создавать не надо. Как только выполнение сценария закончится, связь с сервером закроется, если оно не было явно закрыто более ранним вызовом «mysql_close()».

Пример: $connect = mysql_connect(‘localhost’, ‘root’, ‘no_one’); В данном случае переменная $connect явяется идентификатором соединения. Если работа ведется только с одной базой то код пишется без идентификатора: mysql_connect(‘localhost’, ‘root’, ‘no_one’);

Выбор базы данных

«mysql_select_db» — выбирает базу данных MySQL. Это значит, что на сервере может находится не одна база данных, а несколько. Этой командой мы выберем ту, которую надо (на которую у нас есть права). Параметром этой функции является имя базы. Выбранная таким образом база становится активной и связывается с определенным идентификатором. Если идентификатор связи не определен, то используется последнее подключение к базе.

Пример: mysql_select_bd(‘test’, $connect); — где test это имя базы данных, а $connect это идентификатор соединения. Если работа ведется только с одной базой то код пишется без идентификатора: mysql_select_bd(‘test’);

Посылаем запрос

mysql_query() посылает запрос в базу данных, к настоящему времени активную на сервере, который связан с определенным идентификатором связи. Если идентификатор не указан, используется последняя открытая связь. Параметром этой функции является строка с sql-запросом.

Пример: $tmp=mysql_query(«slect * from table», $connect); — эта комнда выдаст все содержимое таблицы table из активной базы данных на которую указывает идентификатор $connect. Если работа ведется только с одной базой то код пишется без идентификатора: $tmp=mysql_query(«slect * from table»);

Обработка запроса

Для обработки запросов существует несколько функций. Выбор того или иного метода обработки запросов зависит от стиля программирования, поставленной задачи. Следует также учитывать, что разные варианты по разному «загружают» сервер (некоторые сильно некоторые не очень). Разберем несколько из них.
mysql_fetch_object — возвращает объект php в качестве результата обработки. Этот метод хорош для тех, кто привык к объектному программированию
Пример: while($result= mysql_fetch_object($tmp)) echo($result->name);

mysql_fetch_array — выбирает результат как ассоциативный массив. Этот метод хорош для новичков (хотя как сказать, это уж кому как больше понравится).

Закрытие соединения

Закрытие соединения производится посредствам функции mysql_close(). Ее параметром является идентификатор соединения с базой данных. Если этот параметр не задан, то закрывается последнее вызванное соединение.

Работа с MySQL в PHP: с чего начать?

Многие обладатели домашних страничек рано или поздно начинают интересоваться устройством крупных новостных порталов и контент-проектов — не вручную же они ве эти страницы делают! А как тогда? Данная статья поможет начинающему веб-мастеру начать создание проектов с применением PHP-MySQL.

Один из самых часто задаваемых вопросов начинающих веб-мастеров: как начать работать с базами данных MySQL, используюя скрипты на PHP? Это неудивительно, потому что эра статических HTML-сайтов давно прошла (на «Народе» это любимое народом дело процветает 🙂 и теперь более-менее грамотные начинающие веб-мастера осознали удобство и комфорт создания и поддержания контент проектов на основе PHP-MySQL. Скептики и консерваторы будут утверждать, что работать с файлами проще, что легче наверстать страничку вручную, чем тратить время на отладку и написание скриптов. Не слушайте их — это абсурд! Как говорится «Лучше день потерять потом за 5 минут долететь!». Ну допустим, на подготовку и создание динамической версии сайта на основе PHP-MySQL уходит раза в два-три больше времени, а то и больше, но зато поддержка проекта в будущем покажется вам приятным и простым занятием (конечно, настолько, насколько серьёзно вы к этому подойдёте). А почему загибаются казалось бы хорошие статические сайты? Причина всему — рутинные операци по обновлению сайта. Если на PHP-MySQL сайте есть возможность добавлять статьи через форму (копировать, вставить, отправить), то для добавления статьи на статический сайт нужно намного больше более сложных операций:

  1. Сверстать новую страничку на основе существующего шаблона.
  2. Проверить форматирование, ссылки, картинки, всё ли на месте.
  3. Добавить ссылку на новую страницу где-то ещё (а то и на несколько!), например в раздел «Статьи».
  4. Проверить, как всё это работает целиком.
  5. Соединиться с сервером FTP.
  6. Закачать все обновлённые страницы на сервер.
  7. Проверить, всё ли работает в онлайне.

Вот почему многие бросают любимое занятие. Ну есть конечно некоторые усердные личности, которые годами поддерживают такие сайты. А есть и умельцы, которые за пару месяцев разработают БД и PHP-движок и будут жить методом «копировать, вставить, отправить»!

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

  1. Есть ли у меня PHP?
  2. Есть ли у меня MySQL?
  3. Есть ли у меня вообще сайт? (шутка 🙂

Итак, для создания динамического сайта нам понадобится хостинг с поддержкой PHP и MySQL. Ну здесь я вам не советчик — если вы создаёте серьёзный проект, то лучше немного заплатить, но получить всё и сразу — тогда вам сюда https://hcenter.info. Из бесплатных хостингов PHP и MySQL доступны кажется на Агаве, но я могу ошибаться — тогда поищите в Яндексе «бесплатный хостинг с поддержкой PHP MySQL» или что-то в этом роде.

Пропускаем момент регистрации на хостинге. Теперь вам должны выслать по email письмо с логинами и паролями. Внимательно прочитайте инструкции, посмотрите FAQ на сайте хостинга, если что-то непонятно.

Во-первых, вам необходимо создать новую базу данных на MySQL-сервере. Это очень легко делается при помощи инструментов типа phpMyAdmin или любого графического клиента MySQL — SQLyog, MySQL-Front. На большинстве хостингов это делается при помощи панели управления хостингом — тут я вам не помощник, смотрите сами. Выполните функцию создания новой базы, назвав её например «test».

При помощи одной из указанных выше программ выполните представленный ниже SQL-дамп:

Теперь вы можете написать и выполнить свои PHP-скрипты для операций с только что созданной базой данных. Следующий PHP-скрипт подключается с серверу MySQL, производит выборку данных и выводит содержимое таблицы «links» в виде обычной HTML-таблицы.

Сохраните скрипт в файл под именем, например test.php и закачайте на FTP-сервер вашего сайта. Скрипт будет доступен например так: https://vasya.server.ru/test.php (ну или смотря куда вы его закачали). Если всё сделано правильно, скрипт отработает и выведет на экран содержимое БД в виде обычной таблицы.

Буду искренне рад, если эта статья стала для вас отправной точкой для создания динамического сайта!

Words are DUST

Страницы

пятница, 6 января 2012 г.

C/C++ работа с базой данных MySQL

Итак 🙂 Ниже будет пост, бьющий все рекорды просмотров на codepaste. В свое время я почему-то ничего толкового не нашел, было много экспериментов. Теперь я хочу показать тебе маленький, но очень гордый проект для работы с БД MySQL

Предисловие и приготовления

Итак, значит, дошли мы до серьезного приложения, где необходимо использовать полноценную БД?) Ок. Подготовка состоит из следующих этапов:

  1. Скачивание и установка MySQL-сервера (если приложение работает с локальной базой)
  2. Конфигурация графического интерфейса БД (phpMyAdmin — веб-морда, пригодится, если помимо MySQL-сервера у нас стоит еще и http-сервер(Apache, например). Так будет, если вы берете MySQL из состава Denwer. Иначе, если тебя интересует только БАЗА, то рекомендую dbForge Studio for MySQL)
  3. Конфигурация базы (собственно, описание ее структуры, связей, типов, состава полей и т.п. ) или перенос дампа с существующей базы
  4. Написание программы-клиента.

Если ты не олух и баловался хотя бы с PHP (в противном случае советую найти где-нибудь нахаляву в торрентах диск тов.Попова «PHP и MySQL за 22 часа». или фиг знает сколько часов. Но курс хороший. Даст базовые понятия PHP и обращения с нашей БД), то не будем заниматься глупостями и перейдем сразу к крайнему пункту. Необходимо изначально скачать MySQL-сервер с официального сайта, установить все компоненты, включая Development Components. (Аналогично вот этой статье) В проекте (под MVS2010) указать пути к заголовочным файлам:в верхнем меню Projects-> Project_name Properties. Там раскрыть категорию «Configuration Properties», справа найти «Include Directories» , в выпадающем списке выбрать добавить путь к папке (по дефолту: C: Program Files MySQL MySQL Server 5.0 include ) Помимо прочего, необходимо найди и подключить в коде (хотя, можно и в проекте, но я покажу наглядно с помощью pragma comment) статическую библиотеку libmysql.lib и кинуть libmysql.dll в

  • C:\Windows\System32\

    О компоновке проекта можно почитать здесь

    Реализация

    Ок, все вводые выполнили, теперь можно приступать. Извращаться не будем, для наглядности пишем в одном файле. Сначала ничего интересного — описываем подключаемые библиотеки, файлы и пространства имен:

    А вот теперь заполняем основные константы для подключения к базе и переходим к телу функции main. (Знатоков PHP сейчас начнет хватать за пятку де-жа-вю)

    Итак, обращу твое внимание. Мы подключились к базе, уже без палева провели первый запрос. Да. Это функция mysql_query(дескриптор,»Запрос»);. В данном случае, мы подключились и сказали:«Дорогая База Данных! Пожалуйста, сформируй кодировку вывода для соединения link как кириллическую (cp1251)». Тем самым мы, консоль и база говорят на одном языке (кодировке). Теперь можем смело приступать к более осмысленным вещам.

    Пусть у тебя есть некая таблица со статьями (articles), в ней есть поля автор (Authors) и название стати (Title). Попробуем «вытащить» из базы названия всех статей, автор которых, к примеру. Хватит это терпеть! Пусть будет Жириновский.

    Это не безопасный вариант кода, если у нас какая-то операция не удастся, то программа вылетит с ошибкой. Давай еще раз то же самое, но с проверкой на успешность.

    Постскриптум

    Функций, доступных разработчикам, много. Мануалы по конкретным задачам гуглятся на ура. Я же ставил себе целью показать некий «Hello, World!», маленький, но уже обросший всем необходимым, 100% рабочий проект.

  • Добавить комментарий