Создание приложения на основе базы данных на языке PHP
В данном уроке описывается последний подготовительный этап разработки приложения "Wish List" ("Список желаний") в рамках создания демонстрационной базы данных с тестовыми данными. Для выполнения всех этапов, предложенных в данном руководстве, необходима база данных, которая позволит сохранять данные (желания), введенные пользователями. IDE NetBeans позволяет выполнять все эти действия с помощью интерфейса IDE. Перед началом работы ознакомьтесь с требованиями, описанными в разделе Создание приложения типа CRUD на языке PHP – главная страница.
Текущий документ является частью краткого учебного курса "Создание приложения CRUD в IDE NetBeans для PHP".
Регистрация сервера MySQL
Если в IDE еще не зарегистрирован сервер баз данных MySQL или вам требуется общая информация об использовании MySQL в IDE NetBeans, см. раздел Подключение к базе данных MySQL.
Создание пользователя базы данных
Перед созданием базы данных необходимо создать соответствующего пользователя, которому будет предоставлено право на выполнение любых операций в базе данных. Создание пользователя базы данных включает в себя следующие действия:
Подключение к базе данных системы MySQL пользователя с ролью root. Поскольку выполнение команды SQL невозможно без подключения к какой-либо базе данных, это действие позволяет запустить команду SQL, необходимую для создания пользователя.
Запустите IDE, перейдите в окно 'Службы' (Ctrl-5) и разверните узел 'Базы данных'.
Для подключения к серверу базы данных MySQL перейдите к узлу MySQL Server и выберите "Connect" в контекстном меню.
IDE NetBeans устанавливает соединение с сервером MySQL, проверяет наличие доступных баз данных с помощью сервера, обнаруживает системную базу данных mysql и добавляет соответствующий новый узел mysql к дереву баз данных.
Для выполнения команды SQL необходимо подключение к базе данных. Поскольку доступна только система MySQL, следует подключиться к этой системе. Для подключения к системной базе данных перейдите к узлу mysql и выберите "Connect" в контекстном меню. Если подключение на данный момент отсутствует, появится диалоговое окно "New Database Connection". В поле "User Name" по умолчанию вводится значение "root". В поле "Password" введите пароль пользователя root.
Если вы уже подключались к базе данных mysql , это диалоговое окно не отобразится. Вместо этого в дереве просто появится новый узел подключения.В диалоговом окне "New Database Connection" появится сообщение "Connection established". Нажмите кнопку "ОК". К дереву баз данных добавлен новый узел с именем jdbc:mysql://localhost:3306/mysql .
Перейдите к узлу jdbc:mysql://localhost:3306/mysql и выберите в контекстном меню "Execute Command".
Откроется окно "SQL Command". В окне "SQL Command" введите следующие команды:
Выберите в контекстном меню "Run Statement". Если команда выполнена успешно, в строке состояния выводится следующее сообщение: "SQL Statement(s) executed successfully". Если выводится другое сообщение, проверьте синтаксическую правильность введенных команд и выполните советы, относящиеся к данному сообщению.
Создание базы данных Wishlist
Для создания базы данных выполните следующие действия:
Перейдите к узлу MySQL Server at localhost:3306 и выберите из контекстного меню "Create Database". Появится диалоговое окно "Create MySQL Database". Заполните поля следующим образом:
В поле имени "Database Name" введите "wishlist".
Установите флажок "Grant full access to user" и выберите в раскрывающемся списке phpuser@localhost . Нажмите кнопку "OK".
Функция "Grant full access to user", предоставляющая пользователю полные права доступа, срабатывает не всегда. Если она не работает, подключитесь к базе данных как пользователь root и отправьте запрос SQL [examplecode]# GRANT ALL ON wishlist.* TO phpuser@localhost #.
Подключение к базе данных появится в дереве. Однако это подключение создано для пользователя root . Вам требуется подключение для пользователя ` phpuser`.
Установление подключения к базе данных Wishlist
На предыдущем этапе вы создали базу данных wishlist с подключением для пользователя root . Теперь необходимо создать подключение для пользователя phpuser .
В окне 'Службы' щелкните правой кнопкой мыши узел 'Базы данных' и выберите 'Создать подключение'. Открывается мастер создания подключений.
На панели 'Обнаружение драйвера' в мастере создания подключений выберите MySQL (Connector/J Driver). Нажмите 'Далее'. Открывается панель 'Настройка соединения'.
В поле 'База данных' введите wishlist .
В полях "User Name" и "Password" введите соответственно имя и пароль пользователя, указанные в разделе Создание владельца (пользователя) базы данных (в нашем примере это phpuser и phpuserpw ). Установите флажок 'Запомнить пароль'. Нажмите 'Проверить подключение'. Если соединение установлено успешно, нажмите "OK".
В дереве баз данных будет отображаться соответствующий новый узел подключения. Подключение для пользователя root к базе данных wishlist можно удалить. Нажмите на подключение jdbc:mysql://localhost:3306/wishlist [корневой элемент в схеме по умолчанию] и выберите 'Удалить'.
Проектирование структуры базы данных Wishlist
Для размещения и сохранения всех необходимых данных требуются две таблицы:
таблица "wishers" для сохранения имен и паролей зарегистрированных пользователей;
таблица "wishes", которая будет содержать описания требований.
Таблица "wishers" содержит три поля:
"id" – уникальный идентификатор пользователя. Это поле используется в качестве первичного ключа.
Таблица "wishes" содержит четыре поля:
"id" – уникальный идентификатор пользователя. Это поле используется в качестве первичного ключа.
"wisher_id" – идентификатор пользователя, оставившего пожелание. Это поле используется в качестве внешнего ключа.
"due_date" – требуемая дата исполнения пожелания.
Таблицы связаны посредством идентификатора пользователя. Все поля таблицы "wishes" являются обязательными для заполнения, за исключением "due_date".
Создание таблиц
Для подключения к базе данных щелкните правой кнопкой мыши узел подключения jdbc:mysql://localhost:3306/wishlist и выберите "Connect" в контекстном меню. NOTE: Если пункт меню недоступен, пользователь уже подключен. Перейдите к действию 2.
В том же контекстном меню выберите "Execute Command". Откроется пустое окно "SQL Command".
Для создания таблицы "wishers"
Введите следующий запрос SQL (отметьте, что как набор символов следует прямо установить UTF-8 для интернационализации):
Можно получить уникальный номер, автоматически создаваемый MySQL, задав свойство AUTO_INCREMENT для поля. MySQL создаст уникальный номер посредством увеличения на единицу последнего номера в таблице и автоматически добавит его к значению поля с этим свойством. В нашем примере автоматически должно увеличиваться значение в поле "ID".Щелкните запрос правой кнопкой мыши, затем выберите "Run Statement" в контекстном меню.
Механизмом хранения по умолчанию для MySQL является MyISAM, не поддерживающий внешние ключи. Если нужна поддержка внешних ключей, используйте в качестве механизма хранения InnoDB.Для создания таблицы "Wishes"
введите следующий запрос SQL:
Щелкните запрос правой кнопкой мыши, затем выберите "Run Statement" в контекстном меню.
Для проверки того, что новые таблицы добавлены к базе данных, перейдите к окну "Services", а затем к узлу подключения jdbc:mysql://localhost:3306/wishlist.
Нажмите правую кнопку мыши и выберите "Refresh". В дереве появятся узлы "wishers" и "wishes".
Примечание. Набор команд SQL для создания базы данных wishlist MySQL можно загрузить здесь.
Ввод тестовых данных
Для тестирования приложения необходимо наличие некоторых данных в базе данных. В приведенном ниже примере показано, каким образом можно добавить данные для двух пользователей и четырех желаний.
В узле подключения jdbc:mysql://localhost:3306/wishlist щелкните правой кнопкой мыши и выберите "Execute Command". Откроется пустое окно "SQL Command".
Для добавления данных пользователя введите следующие команды:
Щелкните запрос правой кнопкой мыши и выберите из контекстного меню "Run Statement". NOTE: . Оператор не содержит значения для поля идентификатора . Значения вводятся автоматически, поскольку указан тип поля AUTO_INCREMENT . Введите данные другого тестового пользователя:
Для добавления пожеланий ("wishes") введите следующие команды:
Выберите запросы, щелкните каждый правой кнопкой мыши по каждому из них и выберите "Run Selection" в контекстном меню.
Также можно выполнять запросы один за другим, как описано в пункте 2.Для просмотра тестовых данных щелкните соответствующую таблицу правой кнопкой мыши и выберите из контекстного меню "View Data".
Ознакомиться с общими принципами организации баз данных и их моделями можно с помощью следующего обучающего руководства: http://www.tekstenuitleg.net/en/articles/database_design_tutorial/1.
Для получения дополнительной информации о синтаксисе операторов MySQL CREATE TABLE см. http://dev.mysql.com/doc/refman/5.0/en/create-table.html.
Для получения дополнительной информации о вставке значений в таблицу см. http://dev.mysql.com/doc/refman/5.0/en/insert.html.
Примечание. Набор команд SQL для создания базы данных wishlist MySQL можно загрузить здесь.