|
Разработка базовых примитивовПримитивы можно разделить на две группы: манипулирования таблицами базы данных и самими данными. К первой группе относят:
Во вторую группу входят:
Любые манипуляции с таблицами или их данными возможны только после соединения с базой данных. Поэтому, прежде, чем перейти к разработке примитивов рассмотрим этот вопрос. Соединение с базой данных Для баз данных Postgres95 это делают с помощью функции int pg_Connect(string host, string port, string options, string tty, string dbname); Эта функция возвращает идентификатор соединения. Он равен 1, если соединение прошло успешно. В противном случае его значение равно 0. Сохраните ниже приведенный скрипт в файле connect.php3 и поместите его в папку WebDBApp. <? $cnct = pg_Connect("host=localhost port=5432 dbname=chek user=chek"); if( !$cnct ) { // соединения нет echo "Connect to database failed! \n"; echo "Please, consult the system administrator. \n"; exit; } else { // соединение прошло успешно echo "Do Something \n"; } ?> Запустите скрипт на исполнение, для чего воспользуйтесь, например, Netscape Navigator. Введите в его адресной строке путь к папке WebDBApp, например, так http://ssu.sumy.ua/teach/WebDBApp/connect.php3 Если соединение с базой данных произойдет успешно, то вы увидите следующее сообщение
Как мы уже отмечали приложения Web баз данных - это сплав PhP и HTML кодов. Как же сервер их различает. Для указания начала PhP кода используют такую комбинацию символов <?, а его завершение помечают так ?>. Цвет символов серверу безразличен. Этот цвет выбран для того, чтобы в дальнейшем было зрительно легко отличать PhP код от остального текста. Комментарии выделены зеленым цветом. Создайте в папке WebDBApp папку primitive и сохраните там примитив соединения с базой данных <? $cnct = pg_Connect("host=localhost port=5432 dbname=chek user=chek"); if( !$cnct ) { // соединения нет echo "Connect to database failed! \n"; echo "Please, consult the system administrator. \n"; exit; ?> как connect.inc файл. Создание таблиц А теперь нам осталось совсем чуть-чуть, чтобы создать таблицу test - воспользоваться SQL командой CREATE TABLE. Например, так <? //*** соединение с БД *** require "primitive/connect.inc"; //*** создание таблицы *** $result = pg_Exec($cnct, "CREATE TABLE test (id int, name char(20))"); if ( $result ) { // таблица создана echo "Table create \n"; } ?> Используемая здесь функция int pg_Exec(int connection, string query) позволяет переадресовать SQL запрос Postgres95 для исполнения. Ключевое слово require позволяет включить текст примитива connect.inc, который был помещен в папку primitive. Сохраните этот скрипт под именем create.php3 и запустите его на исполнение. Добавление данных Результатом исполнения скрипта create.php3 является файл test. Каждая запись этого файла состоит из двух типов данных: номера по списку id и соответствующих ему фамилии и инициалов - name. Операция добавления данных позволяет создавать новые записи и заполнять их поля заданными значениями. Примитив добавления данных <? // *** соединение с БД *** require "primitive/connect.inc"; // *** добавление данных *** $result = pg_Exec($cnct,"INSERT INTO test values(1,'Иванов')"); if ( $result ) { echo "Data insert \n"; } ?> назовем insert.php3. Поместите его на сервер и запустите на исполнение Netscape Navigator'ом. Если данные будут добавлены, то вы увидите сообщение: "Data insert". Просмотр данных Предварительно задают объем просматриваемых данных. Эту операцию называют "выборка". Ее реализуют SQL командой SELECT. Например, так SELECT * FROM test Затем данные, которые выбраны из таблицы, распечатывают построчно. Для этого используют функции, которые сохраняют строки таблиц, как массивы, например, array pg_Fetch_Array(int result, int row); Здесь row - номер строки. Их нумеруют, начиная с 0. Итак, примитив просмотра данных <? // *** соединение с БД *** require "primitive/connect.inc"; // *** просмотр данных *** $result = pg_Exec( $cnct, "SELECT * FROM test" ); if ( $result ) { $arr = pg_Fetch_Array ($result, 0); echo $arr['name']; } ?> назовем view.php3. Поместите его на сервер и запустите на исполнение. Обратите внимание, что данный скрипт позволяет просмотреть значение поля name только одной записи. Если в таблице несколько строк, и вы хотите просмотреть результат выбоки как таблицу, то используйте следующий скрипт <? //*** соединение с БД *** require "primitive/connect.inc"; // *** просмотр данных *** $result = pg_Exec( $cnct, "SELECT * FROM test" ); $RecCount = pg_NumRows( $result ); // число записей, //которые следует отобразить на экране ?> <HTML> <BODY> <TABLE BORDER="1" WIDTH="200"> <? $i = 0; do // отображаем записи построчно { $arr = pg_Fetch_Array ($result, $i); ?> <TR> <TD>Name: </TD> <TD><? echo $arr['name']; ?> </TD> </TR> <? $i = $i + 1; // номер следующей записи, которую //будем отбражать строкой таблицы } while ($i < $RecCount); ?> </TABLE> <BR> </BODY> </HTML> Назовем этот скрипт view_n.php3. Результат его исполнения такой
Изменение значений данных Можно произвести SQL командой UPDATE. Например, так UPDATE test Такие запросы, как правило, образуют конкатенацией (символ ".=" ) и хранят в переменной. В ниже следующем скрипте это переменная $query. <? // *** соединение с БД *** require "primitive/connect.inc"; // *** изменение значений данных *** // формирование запроса $query = "UPDATE test " ; $query .= "SET name = 'Петров' " ; $query .= "WHERE name = 'Иванов' " ; // Исполнение запроса $result = pg_Exec( $cnct, $query ); if ( $result ) { echo "Data update \n"; } ?> Сохраните скрипт под именем udate.php3. Запустите его и убедитесь, что фамилия "Иванов" была изменена на "Петров". Удаление записей таблиц Для удаления всех записей из таблицы используют команду SQL вида DELETE FROM test; Записи, где значения полей, которые удовлетворяют некоторым условиям, удаляют так: DELETE FROM test WHERE name='Иванов'; Удаление таблиц из базы данных Таблицу удаляют следующей SQL командой DROP TABLE test; Назад | Содержание | Вперед |
|||||||||||||||||
With any suggestions or questions please feel free to contact us |