Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ekzamenatsionnye_otvuty.docx
Скачиваний:
45
Добавлен:
15.03.2015
Размер:
141.29 Кб
Скачать

Запись в файл

С открытыми файлами выполняются две основные операции — чтение и запись.

is_writeable()

Функция is_writeable()позволяет убедиться в том, что файл существует и для него разрешена операция записи. Возможность записи проверяется как для файла, так и для каталога. Синтаксис функцииis_writeable():

bool is_writeable (string файл)

Одно важное обстоятельство: скорее всего, РНР будет работать под идентификатором пользователя, используемым web-сервером (как правило, "nobody"). Пример использования is_writeable()приведен в описании функцииfwrite().

fclose()

Функция fclose()закрывает файл с заданным манипулятором. При успешном закрытии возвращаетсяTRUE, при неудаче —FALSE. Синтаксис функцииfclose():

int fclose(int манипулятор)

Функция fclose()успешно закрывает только те файлы, которые были ранее открыты функциямиfopen()илиfsockopen(). Пример закрытия файла:

$file = "userdata.txt"; if (file_exists($file)) : $fh = fopen($file, "r"); // Выполнить операции с файлом fclose($fh); else : print "File $file does not exist!"; endif;

23) Открытие файла и чтение данных из файла в РНР.

Чтение из файла

Несомненно, чтение является самой главной операцией, выполняемой с файлами. Ниже описаны некоторые функции, повышающие эффективность чтения из файла. Синтаксис этих функций практически точно копирует синтаксис аналогичных функций записи.

is_readable()

Функция is_readable()позволяет убедиться в том, что файл существует и для него разрешена операция чтения. Возможность чтения проверяется как для файла, так и для каталога. Синтаксис функцииis_readable():

bool is_readable (string файл]

Скорее всего, РНР будет работать под идентификатором пользователя, используемым web-сервером (как правило, "nobody"), поэтому для того чтобы функция is_readable()возвращалаTRUE, чтение из файла должно быть разрешено всем желающим. Следующий пример показывает, как убедиться в том, что файл существует и доступен для чтения:

$filename = "somefile.txt"; if ( is_readable($filename) ) : // Открыть файл и установить указатель текущей позиции в конец файла $fh = fopen($filename, "r"); else : print "$filename is not readable!"; endif;

fread()

Функция fread()читает из файла, заданного файловым манипулятором, заданное количество байт. Синтаксис функцииfwrite():

int fread(int манипулятор, int длина)

Манипулятор должен ссылаться на открытый файл, доступный для чтения (см. описание функции is_readable()). Чтение прекращается после прочтения заданного количества байт или при достижении конца файла. Рассмотрим текстовый файлpastry.txt, приведенный в листинге 7.1. Чтение и вывод этого файла в браузере осуществляется следующим фрагментом:

$fh = fopen('pastry.txt', "r") or die("Can't open file!"); $file = fread($fh, filesize('pastry.txt')); print $file; fclose($fh);

Используя функцию fllesize()для определения размераpastry.txtв байтах, вы гарантируете, что функцияfread()прочитает все содержимое файла.

24) Нормализация таблиц (первые три формы) при проектировании баз данных

Нормализация данных.

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

Первая нормальная форма.

Первая и главная нормальная форма требует от таблицы (а точнее, от ее проектировщика) следования следующим правилам:

  • Каждый столбец в строке должен быть атомарным, т.е. столбец может содержать одно и только одно значение для заданной строки.

  • Каждая строка в таблице обязана содержать одинаковое количество столбцов. Учитывая обязательную атомарность столбцов, следует, что все строки в таблице должны иметь одинаковое количество значений.

  • Все строки в таблице, в общем, должны быть уникальны. Значения в столбцах могут дублироваться, но строки, взятые целиком — не могут.

Вторая нормальная форма.

Два правила второй нормальной формы говорят о том, что:

  • Таблица обязана соответствовать первой нормальной форме.

  • Все столбцы, не входящие в полный первичный ключ, должны зависеть от полного первичного ключа

Третья нормальная форма.

Третья норма данных расширяет две предыдущие, неся в себе два правила:

  • Таблица должна соответствовать второй нормальной форме.

  • Все столбцы, не входящие в полный первичный ключ, должны зависеть от него и не должны зависеть друг от друга.

25) Базовые понятия синтаксиса языка СУБД MySQL и основные типы данных

Синтаксис языка SQL

Для получения информации из БД (выборки) существует оператор SELECT, синтаксис команды с применением этого оператора довольно прост:

SELECT field1, field2,....fieldN FROM tablename

В переводе на человеческий язык это означает следующее:

Выбрать значения поля1, поля2,....поляN из таблицы с именем tablename, гдетермин полеозначает название столбца таблицы.

Таким образом вы получаете значения всех, указанных вами, столбцов по всем строкам таблицы.

Если вы хотите сделать выборку всей таблицы тогда команда будет выглядеть так:

SELECT * FROM tablename

Если хотите сделать выборку определённых строк, то синтаксис будет такой:

SELECT * FROM tablename WHERE ID < 50, где ID номер выбираемой строки. По русски это звучит так:выбрать значения всех столбцов таблицы tablenameиз всех строк , номера которых меньше 50-ти, значит строки 1 - 49.

Однако, прежде чем что-то выбрать из БД надо туда это что-то положить, т.е. записать, для этого существует оператор INSERT. Синтаксис команды также не сложен:

INSERT INTO tablename (field1, field2,...fieldN)

VALUES(val1, val2,...valN)

Дословно это звучит так: вставить в таблицуtablenameв поле1, поле2,...полеN значения: значение1, значение2,...значениеN,соответственно.

А если вам потребуется что-то обновить в значениях таблицы. то применяется оператор UPDATE, он избирательно вносит изменения в поля таблицы. Синтаксис команды таков:

UPDATE tablename SET field1=val1, field2=val2,...fieldN=valN WHERE conditions,

где условие WHERE conditionsто же, что и у оператораSELECT, чаще всего условие применяют в таком виде: WHERE ID = N.

И, конечно, вы всегда сможете удалить неугодные вам строки:

DELETE FROM tablename WHERE conditions

Здесь надо очень внимательно относться к условию WHERE conditions, т.к. после удаления строки или нескольких строк их невозможно будет восстановить. А если условие вообще не задать, то удалятся все строки из таблицы со всеми вытекающими последствиями.Будьте внимательны.

 

Тип Описание

INT Целое число

TINYINT Маленькое целое число (-127 до 128 или от 0 до 255)

FLOAT Вещественное число с плавающей точкой

DATEДата . Отображается в виде ГГГГ-ММ-ДД

TIME Время. Отображается в виде ЧЧ:ММ:СС

DATETIME Дата и время. Отображается в виде ГГГГ-ММ-ДДЧЧ:ММ:ССYEAR[(2|4)] Год. Можно определить двух- или четырехциферный формат

CHAR(M) Строка фиксированной длины М (M<=255)

VARCHAR(M) Строка произвольной длины до М (M<=255)

TEXT Длинные текстовые фрагменты (<=65535)

BLOB Большие двоичные объекты (изображения, звуки)

26)Работа с СУБД MySQL из РНР. Подключение к серверу и выбор базы данных в MySQL.

Соседние файлы в предмете Программирование для Web