Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
lab3-PHP-rus.doc
Скачиваний:
3
Добавлен:
23.11.2019
Размер:
105.98 Кб
Скачать

Передача параметров в функции

Список параметров может состоять из нескольких переменных, разделенных запятыми. Как и в других языках программирования, параметры, которые указываются при вызове функции, называются фактическими (actual parameter), а параметры, присутствующие в определении функции, — формальными (formal parameter). В качестве фактического параметра можно использовать любое выражение. Формальный параметр всегда должен представлять собой имя переменной.

Определение функции с тремя параметрами может выглядеть следующим образом.

function A($arg1, $arg2, $arg3)

{...}

А вызвать эту функцию можно так.

A(2, $b, $c);

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

<?php

$a = 5; // создание глобальной переменной $a

function Inc($a){

$a++; // функция модифицирует значение локальной переменной

return $a; // и возвращает ее значение

}

$b = Inc($a); // еще одна переменная $b

echo “$a $b”; // будут выведены значения 5 и 6, поскольку функция Inc работала не с глобальной переменной $a, а с ее копией

?>

SРабота с базами данных

Язык РНР поддерживает различные системы баз данных, что является одним из существенных его преимуществ. Язык РНР обеспечивает поддержку следующих баз данных.

Adabas D

InterBase

Solid

DBase

mSQL

Sybase

Empress

MySQL

Velocis

FilePro

Oracle

Unix DBM

Informix

PostgreSQL

Microsoft SQL Server

ODBC

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

<?php

Подключение к СУБД()

Инструкции SQL()

Отключение от СУБД()

?>

Рассмотрим пример взаимодействия РНР и MySQL.

Доступ к базе данных MySql с использованием языка рнр

Функция РНР mysql_connect позволяет сценарию подсоединиться к серверу MySQL. Эта функция имеет три параметра, которые все являются необязательными. Первый параметр задает узел, на котором запущен сервер MySQL. По умолчанию значением этого параметра является localhost (имя компьютера, на котором выполняется сценарий). Второй параметр задает имя пользователя MySQL. По умолчанию таким именем является имя пользователя, в контексте которого был запущен процесс РНР. Третий параметр задает пароль для доступа к базе данных. По умолчанию используется пустой пароль. Например,

$db = mysql_connect();

Конечно, операция соединения с базой данных может завершиться неудачно. В этом случае возвращается значение false (а не ссылка на базу данных). Соединение с базой данных можно разорвать с помощью функции mysql_close.

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

mysql_select_db(“cars”);

Серверу MySQL запросы передаются с помощью функции mysql_query. Например,

$query = “SELECT * from Slavuta”

$result = mysql_query($query);

Возвращаемое функцией mysql_query значение используется для оценки результатов, полученных при выполнении запроса SQL. В большинстве случаев необходимо определить количество строк результирующих данных. Это можно осуществить с помощью функции mysql_num_rows, параметром которой является результат, предоставленный функцией mysql_query. Например,

$num_rows = mysql_num_rows($result);

Отдельные строки набора данных, полученного при выполнении SQL-запроса, можно получить различными способами. Например, можно воспользоваться функцией mysql_fetch_array, которая возвращает хеш-код следующей строки. Если записей больше нет, то возвращается значение false. Затем значения полей могут быть получены путем совместного использования имени столбца таблицы и хеш-кода текущей строки результирующего множества. Например, если в результирующем наборе данных содержатся поля Salon и Salon_ID, то всю полученную информацию можно представить в виде кода HTML следующим образом.

$num_rows = mysql_num_rows($result);

for($row_num = 0; $row_num < $num_rows; $row_num++)

{

$row = mysql_fetch_array($result);

print “<p> Result row number”.($row_num+1).“. Salon_ID: ”;

print htmlspecialchars($row[“Salon_ID”]);

print “ Salon: ”;

print htmlspecialchars($row[“Salon”]);

print “</p>”;

}

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]