Автор работы: Пользователь скрыл имя, 29 Декабря 2012 в 21:00, курсовая работа
MySQL – это одна из самых популярных и самых распространенных СУБД (система управления базами данных) в интернете. Она не предназначена для работы с большими объемами информации, но ее применение идеально для интернет сайтов, как небольших, так и достаточно крупных.
MySQL отличается хорошей скоростью работы, надежностью, гибкостью. Работа с ней, как правило, не вызывает больших трудностей. Поддержка сервера MySQL автоматически включается в поставку PHP.
Введение………………………………………………………………...2
1. СОЕДИНЕНИЕ РНР-СЦЕНАРИЕВ с таблицами MySQL ……….4
1.1.Соединение с сервером. Функция mysql_connect ………...4
1.2. Разрыв соединения с сервером. Функция mysql_close …..5
1.3. Создание базы данных. Функция CREATE DATABASE ..5
1.4. Выбор базы данных. Функция mysql_select_db…………..7
1.5 Обработка ошибок…………………………………………..7
1.6 Автоматизация подключения к MySQL. Файл (config.php)8
2. ВЫПОЛНЕНИЕ ЗАПРОСОВ К БАЗЕ ДАННЫХ ………………...10
2.1 Создание таблицы. Функция CREATE TABLE:…………...10
2.2 Вставка записей в таблицу. Функция INSERT…………….12
2.3 Удаление записей. Функция DELETE……………………...13
2.4 Обновление записей. Функция UPDATE…………………..13
3. MySQL И ПРОБЛЕМЫ БЕЗОПАСНОСТИ ……………………….23
3.1. Экранирование спецсимволов ……………………………..23
3.2. Шаблоны запросов и placeholders …………………………24
3.3 Пример применения СУБД MySQL………………………..29
4. Назначение и условия применения проекта……………………..34
4.1. Представление скрипта ……………………………………34
4.2. Системные требования …………………………………….34
4.3. Характеристика скрипта …………………………………..34
Заключение……………………………………………………………..35
Список использованной литературы…………………………………36
Приложение А…………………………………………………………3
Содержание
Введение…………………………………………………………
1. СОЕДИНЕНИЕ РНР-СЦЕНАРИЕВ с таблицами MySQL ……….4
1.1.Соединение с сервером. Функция mysql_connect ………...4
1.2. Разрыв соединения с сервером. Функция mysql_close …..5
1.3. Создание базы данных. Функция CREATE DATABASE ..5
1.4. Выбор базы данных. Функция mysql_select_db…………..7
1.5 Обработка ошибок……………………………………
1.6 Автоматизация подключения к MySQL. Файл (config.php)8
2. ВЫПОЛНЕНИЕ ЗАПРОСОВ К БАЗЕ ДАННЫХ ………………...10
2.1 Создание таблицы. Функция CREATE TABLE:…………...10
2.2 Вставка записей в таблицу. Функция INSERT…………….12
2.3 Удаление записей. Функция DELETE……………………...13
2.4 Обновление записей. Функция UPDATE…………………..13
3. MySQL И ПРОБЛЕМЫ БЕЗОПАСНОСТИ ……………………….23
3.1. Экранирование спецсимволов ……………………………..23
3.2. Шаблоны запросов и placeholders …………………………24
3.3 Пример применения СУБД MySQL………………………..29
4. Назначение и условия применения проекта……………………..34
4.1. Представление скрипта ……………………………………34
4.2. Системные требования …………………………………….34
4.3. Характеристика скрипта …………………………………..34
Заключение……………………………………………………
Список использованной литературы…………………………………36
Приложение А…………………………………………………………37
Введение
MySQL – это одна из самых популярных и самых распространенных СУБД (система управления базами данных) в интернете. Она не предназначена для работы с большими объемами информации, но ее применение идеально для интернет сайтов, как небольших, так и достаточно крупных.
MySQL отличается хорошей скоростью работы, надежностью, гибкостью. Работа с ней, как правило, не вызывает больших трудностей. Поддержка сервера MySQL автоматически включается в поставку PHP.
Немаловажным фактором является ее бесплатность.
Ранее для долговременного хранения информации мы работали с файлами: помещали в них некоторое количество строчек, а затем извлекали их для последующей работы. Задача длительного хранения информации очень часто встречается в программировании Web-приложений: подсчёт посетителей в счётчике, хранение сообщений в форуме, удалённое управление содержанием информации на сайте и т.д.
Базы данных сами заботятся
о безопасности информации и её сортировке
и позволяют извлекать и
Приложение на РНР, использующее для хранения информации базу данных (в частности MySql) всегда работает быстрее приложения, построенного на файлах. Дело в том, что базы данных написаны на языке C++, и написать на PHP программу, которая работала бы с жёстким диском эффективнее базы данных - задача неразрешимая по определению, поскольку программы на PHP в принципе работают медленнее, чем программы на C++, так как РНР - интерпретатор, а С++ - компилятор.
Таким образом, основное достоинство базы данных заключается в том, что она берёт на себя всю работу с жёстким диском и делает это очень эффективно.
В конце 80-х годов доминирующей стала система управления реляционными базами данных (СУРБД). Для работы с СУБД был разработан структурированный язык запросов (SQL), который представляет собой язык управления именно реляционными базами данных.
Взаимодействие с базой данных происходит при помощи Системы Управления Базой Данных (СУБД), которая расшифровывает запросы и производит операции с информацией в базе данных. Поэтому более правильно было бы говорить о запросе к СУБД и о взаимодействии с СУБД из Web-приложения.
В реляционных базах данных данные собраны в таблицы, которые в свою очередь состоят из столбцов и строк, на пересечении которых расположены ячейки. Запросы к таким базам данных возвращают таблицу, которая повторно может участвовать в следующем запросе. Данные в одних таблицах, как правило, связаны с данными других таблиц, откуда и произошло название "реляционные". В Web-приложениях, как правило, используются реляционные базы данных.
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 = "localhost"; //Имя сервера
$dbuser = "root"; //Имя пользователя
$dbpasswd = ""; //Пароль
//Осуществляем соединение с сервером базы данных
//Подавляем вывод ошибок символом @ перед вызовом функции
$dbcnx = @ mysql_connect($dblocation, $dbuser, $dbpasswd);
if (!$dbcnx) //Если дескриптор равен 0, соединение не установлено
{
//Выводим предупреждение
echo("<P>B настоящий момент сервер базы данных не доступен, поэтому корректное отображение страницы невозможно.</Р>");
exit ();
}
?>
Переменные $dblocation, $dbuser и $dbpasswd хранят имя сервера, имя пользователя и пароль.
1.2 Разрыв соединения с сервером. Функция mysql_close
Соединение с MySQL – сервером будет автоматически закрыто по завершении работы сценария, либо же при вызове функции mysql_close
bool mysql_close ([resource $link_identifier])
Эта функция разрывает соединение с сервером MySQL, и возвращает true при успешном выполнении операции и false в противном случае. Функция принимает в качестве аргумента дескриптор соединения с базой данных, возвращаемый функцией mysql_connect.
Пример работы с этой функцией:
<?
$dblocation = "localhost"; //Имя сервера
$dbuser = "root"; //Имя пользователя
$dbpasswd = ""; //Пароль
//Осуществляем соединение с сервером базы данных
//Подавляем вывод ошибок символом @ перед вызовом функции
$dbcnx = @ mysql_connect($dblocation, $dbuser, $dbpasswd);
if (!$dbcnx) //Если дескриптор равен 0, соединение не установлено
{
//Выводим предупреждение
echo("<P>B настоящий
момент сервер базы данных
не доступен, поэтому корректное
отображение страницы
exit ();
}
if (mysql_close($dbcnx)) //разрываем соединение
{
echo("Соединение с базой данных прекращено");
}
else
{
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;
После этого следует набрать:
mysql>use 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 — в противном случае:
<?
//Код соединения с базой
if (! @mysql_select_db($dbname, $dbcnx))
{
//Выводим предупреждение
echo("<P> B настоящий момент база
данных не доступна, поэтому корректное
отображение страницы
exit(); }
?>
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:
Листинг config.php:
<?
//config.php код файла, содержащего
параметры соединения с
//выводит сообщения
об ошибках соединения в
$dblocation = "localhost"; //Имя сервера
$dbname = "вставить имя базы" //Имя базы данных: создаваемой или уже существующей
$dbuser = "root"; //Имя пользователя базы данных
$dbpasswd = ""; //Пароль
//Осуществляем соединение с сервером базы данных
//Подавляем вывод ошибок символом @ перед вызовом функции
$dbcnx=@mysql_connect($
if (!$dbcnx) //Если дескриптор равен 0, соединение с сервером базы данных не установлено
{
//Выводим предупреждение
echo("<p> В настоящее
время сервер базы данных не
доступен, поэтому корректное
exit();
}
//Создаем базу данных $dbname – это может делать только суперпользователь
//Если база данных уже существует, будет некритическая ошибка