2.. Доступ к отдельному полю записи. Функция mysql_result
mixed mysql_result (resource result, int row)
С помощью этой функции можно получить доступ к отдельному полю записи. Допустим, нам нужно вывести имя автора, которое первым найдется в базе данных. Сделать это можно следующим образом:
<?
include "config.php";//Подключение к серверу и выбор базы данных
$ath = mysql_query("select name from customers;");
if($ath)
{
echo mysql_result($ath,0,'name');
}
else
{
echo "<p><b>Error: " .mysql_error () . "</b><p>";
exit () ;
}
?>
2.. Возвращение поля записи в виде объекта. Функция mysql_fetch_object
object mysql_fetch_object (resource result)
Эта функция возвращает поля записи данных в виде объекта.
В листинге приведен пример, в котором с помощью этой функции из таблицы customers выводятся имя, и адрес авторов:
<?
include "config.php";//Подключение к серверу и выбор базы данных
$ath = mysql_query("select * from customers;");
if($ath)
{
while($row = mysql_fetch_object($ath))
{
echo "<p>имя: ".$row->name."</p>";
echo "<p>адрес: ".$row-> city."</p>";
}
}
else
{
echo "<p><b>Error: ".mysql_error () . "</b><p>";
exit();
}
?>
Результат выполнения скрипта:
2.. Возвращение массива, в котором содержится значение поля. Функция mysql_fetch_row
array mysql_fetch_row (resource result)
В отличие от функции mysql_fetch_object, эта функция возвращает не объект, а массив, в котором содержатся значения полей:
<?
include "config.php";//Подключение к серверу и выбор базы данных
$ath = mysql_query("select * from customers;");
if($ath)
{
while($row = mysql_fetch_row($ath))
{
echo "<p>имя: ".$row[3]."</p>";
echo "<p>адрес: ".$row[2]."</p>";
}
}
else
{
echo "<p><b>Error: " .mysql_error () . "</b><p>";
exit ();
}
?>
Результаты выполнения этого кода:
2.. Пример комплексного использования информационных функций
Листинг info_1.php
<?php ## Получение информации о таблице.
include "config.php";//Подключение к серверу и выбор базы данных
// Получаем все данные таблицы.
$result = mysql_query('SELECT * FROM people');
// Запрашиваем идентификатор данных о полях таблицы.
$fields = mysql_num_fields ($result);
// Узнаем число записей в таблице.
$rows = mysql_num_rows($result);
// Получаем имя таблицы (правда, мы его и так знаем, но все же...)
$table = mysql_field_table($result,0);
echo "Таблица '$table' содержит $fields колонок и $rows cтpoк<BR>"
echo "Таблица содержит следующие поля:<ВR>";
// "Проходимся" по всем полям и выводим информацию о них.
for ($i=0; $i<$fields; $i++)
{
$type = mysql_field_type($result, $i);
$name = mysql_field_name($result, $i);
$len = mysql_field_len($result, $i);
$flags.= mysql_field_flags($result, $i) ;
echo "$name $type($len) $flags<BR>\n";
}
?>
3. MySQL И ПРОБЛЕМЫ БЕЗОПАСНОСТИ
Запросы, отправляемые серверу MySQL, представляют собой обыкновенные строки РНР:
mysql_query("INSERT INTO table SET name='$name'");
В $name может храниться строка, содержащая апострофы.
Рассмотрим, какой запрос придет серверу MySQL, если $name равно "cat's":
INSERT INTO table SET name='cat's'
Эта команда синтаксически некорректна и породит ошибку во время выполнения.
Но может быть и хуже.
Рассмотрим такой запрос:
mysql_query("DELETE FROM table WHERE name='$name'");
Если параметр $name приходит из формы, и злоумышленник указал в нем следующую строку: "!' or 1=1 or '!", то после подстановки получится такой запрос к базе данных:
DELETE FROM table- WHERE name=' !' OR 1=1 OR ' !'
Этот запрос удалит все записи из таблицы table, потому что выражение SQL 1=1 всегда истинно.
Рассмотрим два способы защиты от подобных ошибок или действий злоумышленника:
● Экранирование спецсимволов.
● Шаблоны запросов и placeholders.
... Apache на русском языке: Если открылась начальная страница, значит Apache установлен правильно. ● Перейдите в окно Web-сервера Apache с помощью Панели задач операционной системы Windows и завершите работу сервера с помощью кнопки [X] в правом верхнем углу окна. 1.3. Установка PHP Загрузить дистрибутивов PHP можно с официальной страницы http://www.php.net/downloads.php из секции Windows ...
... от необходимости самим создавать соответствующие программы. Присутствует в ASP и PHP, отсутствует в XML. Создание серверных сценариев. Основа любого языка для создания динамических сайтов. Присутствует в ASP и PHP, отсутствует в XML. Описание данных. Важная функция, позволяющая представлять данные в едином формате, единым способом записи. Отсутствует в ASP и PHP, присутствует в XML. Наличие ...
... и программных решений, на которых основаны. Серверы размещаются в так называемых серверных комнатах. Управление серверами осуществляют системные администраторы. 2. Базы данных 2.1 Понятие базы данных (БД) Основы современной информационной технологии составляют базы данных (БД) и системы управления базами данных (СУБД), роль которых как единого средства хранения, обработки и доступа к ...
... поставленной задачи показала правильность выбранного подхода. Тем не менее, работа требует дальнейше доработаки для организации постоянного доступа читателей к библиографическим ресурсам библиотекам города через Интернет. Литература 1. Глушаков С.В., Ломотьков Д.В. Базы данных: Учебный курс. – К.: Абрис, 2000. -504с. 2. Джейсон Мейнджер. Java: основы программирования :Пер ...
0 комментариев