
- •19.Назначение библиотеки программирования клиентов. Api интерфейсы, поддерживаемые субд MySql. Критерии выбора api интерфейса.
- •20. Описание порядка взаимодействия пользователя с сервером MySql через web-интерфейс, реализованный средствами php. Схема трехуровневой архитектуры "клиент-сервер".
- •Закрытие соединения с sql-сервером
- •1 Способ
- •2Способ
- •24Проверка результатов запроса на значения "null"
- •27.Типы таблиц, поддерживаемые субд MySql. Их характеристика.
- •32)Понятие cookie. Команды установки и удаления cookie. Получение значений, хранящихся в cookie.
- •33)Понятие http-аутентификации и сессий. Функции хэширования данных. Технология работы с сессиями в рнр.
- •28)Понятие транзакции. Типы таблиц, поддерживающие транзакции, их преимущества Способы создания транзакций.
- •29)Понятие транзакции. Типы таблиц, не поддерживающие транзакции. Решение проблем транзакций без применения механизма транзакций.
- •31)Понятие индекса и индексирования. Преимущества. Правила отбора столбцов для инд.. Типы индексов. Способы задания индексов.
- •34)Понятие констант, переменных и функций в php. Способ описания констант. Синтаксис описания функции в php.Вызов функции. Прим.
Закрытие соединения с sql-сервером
После завершения работы с базой данных необходимо разорвать соединение с SQL-сервером, для чего предназначена функция :
mysql_close([дескриптор открытого соединения ]); Дескриптор соединения представляет собой указатель на открытое соединение клиента с сервером, который используется для работы с несколькими подключениями.
Если этот параметр не указан, закрывается последнее открытое соединение. Функция возвращает true в случае успеха и false при возникновении ошибки.
Функция активизации базы данных.
Состав и назначение файла конфигурации config.php. способы включения файла конфигурации в скрипты РНР.
После того как соединение установлено, необходимо выбрать базу данных, с которой пользователь желает работать. Это осуществляется при помощи функции mysql, которая имеет следующий синтаксис: mysql_select_db(имя базы данных [,идентификатор соединения])
Использование этой функции эквивалентно вызову команды use в SQL-запросе, т. е. функция mysql_select_db() выбирает базу данных для дальнейшей работы, и все последующие SQL-запросы применяются к выбранной базе данных. Пример. Выбор базы данных с именем base_01
<?php
mysql_select_db ("base_01", $connect);
?>Имеет смысл помещать функции соединения с сервером (config.php) и выбора базы данных в один и тот же файл (config1.php):
<
$connect = mysql_connect("uchserv", "student", "");
mysql_select_db("base_01", $connect);
?>
22.Синтаксис функции PHP по созданию запросов к базе данных MySQL. Функция РНР для отображения результата запроса на выборку данных из базы данных MySQL. Примеры. После установки соединения с сервером баз данных и указания имени используемой базы данных выполняются SQL-запросы к базе данных из PHP-сценариев при помощи функции:
mysql_query("запрос MySQL" [,идентификатор соединения]) or die("Ошибка при выполнении запроса:".mysql_error());
Замечание. При передаче запроса функции mysql_query() точку с запятой в конце запроса, обязательную при работе с клиентом mysql, можно не ставить.
2 способа записи функции mysql_query()
Пример. Запрос на выборку всех записей из таблицы product в базе данных base_01.
1 Способ
<HTML>
<BODY>
<?php
include "config1.php";
$result=mysql_query("SELECT * FROM product");
mysql_close($connect);
?>
</BODY>
</HTML>
2Способ
<HTML>
<BODY>
<?php
include "config1.php";
$query="SELECT * FROM product";
$result=mysql_query($query );
полстраницы
mysql_close($connect);
?>
</BODY>
</HTML>
Результат SQL запроса на выборку всех записей из таблицы записывается в переменную $resulti, содержащую все строки требуемой таблицы.
Для организации последовательного отображения всех строк таблицы используется цикл while в сочетании с функцией mysql_fetch_array(). Эта функция возвращает очередную строку из набора данных в виде массива, проиндексированного именами полей таблицы:
Синтаксис данной функции:
mysql_fetch_array (дескриптор запроса[,тип результата])
Второй необязательный параметр тип результата может принимать три значения:
mysql_assoc — возврат результата работы в виде ассоциативного массива;
mysql_num — возврат результата работы в виде численного неассоциативного массива;
mysql_both — возврат результата работы в виде массива, содержащего как численные, так и ассоциативные значения.
Возвращаемый массив содержит значения, идентифицируемые как по числовым индексам столбцов, так и по именам столбцов. Другими словами, доступ к значению каждого столбца можно получить как по числовому индексу, так и по названию столбца. Предположим, результат запроса хранится в массиве с именем $row, тогда доступ к его элементам можно получить следующим образом:
Доступ к значению каждого элемента массива можно получить как по названию столбца, так и по его числовому индексу.
Предположим, результат запроса хранится в массиве с именем $row, тогда доступ к его элементам можно получить следующим образом:
$row[0]
$row[1]
$row["name"]
$row["cena"]
где [0],[1]– числовые индексы столбцов name и cena, ["name"]["cena"]- названия столбцов.
24. Возможные значения, возвращаемые функцией mysql_query() при выполнении select-запросов на выборку записей из таблицы MySQL. Обработка ошибок выполнения таких запросов и анализ результатов их выполнения. Примеры.
_ Обработка запросоввозвращающая результирующий набор select:1.результирующий набор возвращает только одну запись(строку). mysql_query() возвращает: идентификатор результирующего набора(1запись)-для организации выборки строки my sql fetch array(). FALSE-идентификатор неуспешного завершения запроса.предполагается, что результирующий набор содержит только одно значение кот возвращается ф-ей mesql query() для запроса SELECT. Это значение мы помещаем в некоторую переменную например $result. Значение сохраненное в переменную result позволяет получить доступ к результирующему набору но никогда сам по себе не является результатом. Даже если результат состоит из 1го значения его необходимо выбрать с помощью ф-ии mysql fetch array(),$result = mysql_query ("SELECT COUNT(*) FROM member");
if (!$result || !($row = mysql_fetch_array ($result)))
print ("Ошибка при выполнении запроса ");
else
print ("В таблице member имеется". $row[0] . "записей");
2.Результирующий набор содержит несколько записей: mysql_query возвращает 1.идентификатор результирующего набора(много записей)-для организации вывода записей:mysql fetch array(),mysql num fields,mysql num rows.2.FALSE-идентификатор неуспешного завершения запроса.
В следующем примере показан один из способов, как это можно сделать:
$result = mysql_query ("SELECT * FROM member");
if (!$result)
print ("Ошибка при выполнении запроса");
else
print ("количество возвращенных строк: ".mysql_num_rows($result));
while ($row = mysql_ fetch_ array ($result))
{
for ($i = 0; $i < mysql_num_fields ($result); $i++)
{
print ($row[$i]);
}
print ("\n");
}
mysq_free_result ($result);
Другим способом выборки массива является присвоение результата списку переменных. Например, для выборки столбцов fam и name непосредственно в переменные $f и $n, чтобы напечатать имена в последовательности фамилия и имя, необходимо сделать следующее:
$query = "SELECT fam, name FROM member";
$result = mysql_query ($query)
or die ("Ошибка запроса");
while (list ($f, $n) = mysql_fetch_row ($result))
print ( $f, $n) ;
mysql_free_result ($result);
Переменным могут присваиваться любые допустимые значения, но их порядок в list () должен соответствовать порядку столбцов, выбранных по запросу.
1
i