Здавалка
Главная | Обратная связь

Назначение библиотеки программирования клиентов. API интерфейсы, поддерживаемые СУБД MySQL. Критерии выбора API интерфейса.



СУБД MySQL поставляется с набором программных программ. Например, программа mysqldump экспортирует содержимое и структуры таблиц, программа mysqlimport загружает данные из файлов в таблицы, программа mysqladmin выполняет операции администрирования, программа mysqlпозволяет взаимодействовать с сервером и выполнять произвольные запросы. Каждая программа была задумана как маленькая программа с узкоспециализированными функциями. Это справедливо и для более гибкой программы mysql в том смысле, что с ее помощью можно выполнить любое количество различных запросов. Цель ее — делать SQL-запросы и просматривать полученные результаты. Ограниченная природа клиентской программ СУБД MySQL не является недостатком — так было задумано при проектировании. Эти программы являются программами общего назначения и не должны быть универсальным механизмом. Разработчики СУБД MySQL не могут подписаться под философией написания громадных и неповоротливых программ, выполняющих любой ваш каприз (это обычно заканчивается тем, что программируется множество функций, которые никому никогда не потребуются). Стандартные клиентские программы помогают справиться с большинством общих задач, с которыми приходится сталкиваться пользователям MySQL. А вот к приложениям выдвигаются требования, которые нельзя удовлетворить средствами стандартных программ. Этим целям служит библиотека программирования клиентов. Она предоставляет программисту инструментарий для создания приложений, позволяющих удовлетворить любое требование заказчика.предоставляет программный интерфейс для работы приложений (API - application programming interface), который обеспечивает соединение и обмен данными между клиентом и сервером. Сравнивая возможности стандартного клиента mysql и его интерфейса с возможностями библиотеки можно отметить следующие преимущества последнего: Настройка процедуры ввода данных. Клиент mysql позволяет вводить только обычные операторы SQL. Программа "собственного изготовления" позволит создать более понятный и простой интерфейс для ввода данных.Возможность форматирования вывода. Программа mysql выводит результаты в неформатированном виде. Собств. Разработка позволит настроить заголовочную часть рез-та, вычислить промежуточные и общие итоги, отформатировать числа (например, в денежный формат).Возможность обойти ограничения, вытекающие из самой природы SQL. Язык SQL не является процедурным языком и не имеет набора структур управления выполнением программ, таких как условные операторы, циклы и подпрограммы. (Очень сложно задать выборку записей , когда каждая из них лежит в основе сложных последующих операций. Например, вывод списка депозитов банка с последующей детализацией каждого.) Собственная программа позволит «склеить» запросы вместе и получить требуемый результат.СУБД MySQL можно интегрировать в любое приложение. Такое приложение только выиграет от использования данных, хранящихся в базе.Возможность интегрирования СУБД MySQL в Internet Сама СУБД MySQL не предоставляет прямой поддержки Web-приложений, но с помощью определенного инструментария базы данных могут стать легкодоступными из Internet. Запросы можно формировать с помощью Web-сервера и возвращать результаты на броузер клиента. Интерфейсы API для СУБД MySQLДля облегчения разработки программных приложений СУБД MySQL имеет библиотеку, написанную на языке программирования С, позволяющую производить доступ к базам данных из любой программы, написанной на языке С. Клиентская библиотека предоставляет программный интерфейс для приложений (application programming interface— API), который обеспечивает соединение и обмен данными между клиентом и сервером.СУБД MySQL предоставляет широкие возможности для создания приложений, способных работать с сервером MySQL. Существуют клиентские API для таких языков, как Perl, PHP, Java, Python, C++, Tcl и т.д.■Библиотека для клиента С. Это самый первый и основной интерфейс СУБД MySQL. Например, он использовался для создания стандартных клиентов дистрибутива СУБД MySQL: mysql, mysqladmin и mysqldump. ■ DBI (Database Interface — интерфейс базы данных) API для языка написания сценариев Perl. DBI реализован как модуль Perl, который осуществляет интерфейс с другими модулями на уровне DBD (драйверов баз данных), обеспечивающем доступ к определенному механизму базы данных. ■ PHP API. PHP представляет собой язык написания сценариев на стороне сервера, который является удобным способом включения программ в тело Web-страницы. Такая страница обрабатывается РНР до отсылки клиенту, что позволяет этим сценариям создавать динамические Web-страницы, включающие результат SQL-запроса к базе данных. Термин "РНР" изначально означает Personal Home Page (персональная домашняя страница), но функционально РНР уже давно перерос свое первоначально назначение. Web-узел типа РНР сейчас называется "РНР: гипертекстовый препроцессор". Как и DBI, РНР, кроме доступа к СУБД MySQL, обеспечивает поддержку доступа к нескольким другим СУБД.

Выбор API-интерфейсаВ процессе выбора типа интерфейса API учитываются многие факторы. ■ Среда, в которой будет выполняться задача. Контекст, в котором будет выполняться приложение. ■ Производительность. Какова эффективность приложений, написанных с применением того или иного интерфейса?■Простота разработки. Насколько удобно работать с интерфейсом и его языком при создании приложений? ■ Переносимость. Будут ли использоваться приложения в работе с другими базами данных?

 

 

23. Возможные значения, возвращаемые функцией mysql_query() при выполнении запросов на модификацию записей (delete, update insert) в таблице MySQL. Обработка ошибок выполнения таких запросов и анализ результатов их выполнения. Пример.
mysql_query()
возвращает

1. delete, update ,insert,replace –true,false.

2.select-идентификатор результирующего набора/false-означает, что запрос не сработал по одной из причин:1.запрос может содержать синтаксическую ошибку.2.сематически бессмысленны.3.нет привилегий на выполнение запроса.3.недоступен узел сервера MySQL из за сетевых проблем.

Обработка запросов не возвращающих результирующего набора:. delete, update ,insert,replace. mysql_query()возвращает TRUE-Идентификатор успешного завершения запроса.Для получения счетчика строк используется mysql affected rows().

FALSE-идентификатор незаконченного завершения запроса.

Функция mysql_query() для таких запросов как:. delete, update ,insert,replace возвращпет значение TRUE или FALSE показывающее как завершалась обработка запроса.Эти значения не являются счетчиками строк.для того чтобы получить количество строк образовавшихся такими запросами исп-ся ф-ия mysql affected rows().

$result = mysql_query ("DELETE FROM member WHERE member_id = 149") ;

 

20. Описание порядка взаимодействия пользователя с сервером MySQL через web-интерфейс, реализованный средствами PHP. Схема трехуровневой архитектуры "клиент-сервер".


 

Порядок работы с базой данных на MySQL-сервере через web-интерфейс, организованный средствами PHP, выглядит примерно так (рис. 2):

1. Пользователь в Web-браузере задает имя HTML-страницы, которая является стартовой страницей приложения.

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

3. Web-сервер передает параметры запроса в соответствующий PHP-сценарий.

4. Интерпретатор РНР приступает к разбору сценария: открывает соединение с MySQL-сервером и перенаправляет соответствующий запрос серверу MySQL.

5. Сервер MySQL принимает запрос к базе данных, обрабатывает его и отправляет результат (выборку из базы данных) обратно механизму РНР.

6. Модуль РНР завершает выполнение сценария (форматирует результат запроса в HTML-формат) и возвращает HTML-страницу с результатом Web-серверу.

7. Web-сервер отправляет HTML-страницу в браузер для отображения пользователю.

 

21.Синтаксис функций PHP по подключению к серверу MySQL и закрытию соединения с ним. Примеры.Первым шагом при работе с SQL-сервером средствами PHP является установка соединения с ним. Это осуществляется при помощи функции которая имеет следующий синтаксис:

mysql_connect("server","usename", "password")or die ("Ошибка соединения с сервером");

Эта функция устанавливает соединение с сервером MySQL, сетевой адрес которого задается параметром server. Вторым и третьим аргументами этой функции являются имя пользователя базы данных username и его пароль password соответственно.

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

Замечание

Все аргументы функции являются необязательными. В случае их отсутствия по умолчанию для этой функции устанавливаются следующие параметры: server = 'localhost:3306', usename принимает значение владельца сервера, a password - пустую строку.

В случае успеха функция возвращает дескриптор[1] соединения с сервером (который можно сохранить в переменную, например, @connect) , при неудаче - возвращает значение false. Пример. Рассмотрим пример соединения с сервером MySQL, установленным на учебном сервере БТЭУ. Допустим, вы получили учетную запись с именем student без пароля на сервере MySQL, установленном на учебном сервере университета, имеющем имя uchserv. Тогда придется написать следующий PHP-сценарий:

<?php

$name_server = "uchserv"; // в переменную name_server заносится имя сервера

config.php  
$user = "student"; // в переменную user заносится имя пользователя

$pass = ""; // в переменную pass заносится пароль

$connect = mysql_connect($name_server, $user, $pass);

?>

Или

<?php

$connect = mysql_connect("uchserv", "student", "");

?>

Параметры подключения к серверу можно сохранить в отдельный файл (к примеру, config.php), который потом вставляется в каждый РHР-сценарий, содержащий команды-функции работы с MySQL, с помощью команды include:

<?php

include "config.php";

?>

Замечания

1) Для подавления вывода сообщений об ошибках, генерируемых РНР в окно браузера перед функцией mysql_connect нужно поместить символ @:

$connect = @mysql_connect($name_server, $user, $pass);







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.