Реклама на hackersoft.ru Реклама на hackersoft.ru

Вернуться   Форумы Hackersoft > Околотематические разделы > Веб-мастеру
CHAT Регистрация Справка Пользователи Доска почета Календарь Поиск Сообщения за день Все разделы прочитаны

Веб-мастеру Общение разработчиков и содержателей веб-сайтов

Ответ
 
Опции темы
Старый 19.12.2008, 03:35   #1
Kanaris
Администратор 
 
Аватар для Kanaris
 
Регистрация: 24.07.2007
Прописка: Везде, где есть воздух
Сообщений: 1,639
Вес репутации: 76 Kanaris экспертKanaris экспертKanaris экспертKanaris экспертKanaris экспертKanaris экспертKanaris экспертKanaris экспертKanaris экспертKanaris экспертKanaris эксперт
Депозит: 0$
Вы сказали Спасибо: 238
Поблагодарили 1,121 раз(а) в 424 сообщениях
Мне, как и всем программерам, приходилось сталкиваться с базами данных. Когда новички впервые сталкиваются с этим, они не понимают, что к чему: что такое MySQL, что оно собой представляет, что такое SQL-запросы, куда их вводить, и как вообще это юзать. У меня времени мало, не люблю терять больше 5 минут на одного новичка, поэтому постараюсь объяснить в 2-х словах, но чтобы было понятно.

Что такое SQL, MySQL, и что оно собой представляет.
SQL (англ. structured query language) - язык структурированных запросов. SQL используется для обращения с базой данных (извлечение данных, добавление новых данных, замена, ...

MySQL - система управления базами данных. Это такая программа, которая установлена и работает как демон (фоновое приложение) на компьютере (сервере или вашем домашнем компьютере). MySQL - это служба, которая обычно висит на 3306-м порту.

Что представляет собой база данных.
База данных - это набор таблиц разной структуры. В таблицах могут содержаться разные строки и столбцы любого формата (число, текст, ... Теперь немного терминологии баз данных: строка в таблице называется запись. Столбец в таблице называется поле.

Как обращаться с базами данных, при помощи PHP.
Предполагается, что сервер MySQL уже установлен и приведен в работоспособное состояние.
В php есть встроенные функции для работы с базами данных. В начале нужно соединиться с БД. Это делается php-функцией mysql_connect(). Чтобы посылать запросы, используется функция mysql_query(). Вот простой пример php-сценария, использующего MySQL:

PHP код:
<?

// соединяемся с базой данных:
$link mysql_connect("%""test_user""123456789");

// посылаем запрос "установить кодировку обмена данными windows-1251":
mysql_query("SET CHARACTER SET cp1251");

// указываем, с какой базой данных мы имеем дело:
mysql_select_db("testdb"$link);

// посылаем запрос "извлечь все строки из таблицы table1"
$result mysql_query("SELECT * FROM table1"$link); 
$num_rows mysql_num_rows($result); 
echo 
"Получено строк: $num_rows\n";

// посылаем запрос "создать таблицу с такими-то полями:"
$result mysql_query("CREATE TABLE firsttable (cid integer, name char (32), value char (255))"$link);

// посылаем запрос "вставить строку в таблицу firsttable с такими-то значениями"
$result mysql_query("INSERT INTO firsttable VALUES (1,'main','Главная')"$link);

// посылаем запрос "извлечь ..."
$result mysql_query("select * from firsttable"$link);

// здесь мы обрабатываем полученный от базы данных результат
while($row=mysql_fetch_array($result))
    {
    echo 
"cid: ".$row["cid"]."<BR>";
    echo 
"name: ".$row["name"]."<BR>";
    echo 
"value: ".$row["value"]."<BR>";
    }
// в нашем случае поочередно выводим значения в каждой строчке.

// закрываем соединение с базой:
mysql_close();

?>
p.s. Пример приведен из моего тестового скрипта, когда я начинал осваивать базы данных. Комменты я добавил сейчас для понимания.

Существует ли какой-нибудь интерфейс для управления базами данных?
phpMyAdmin. Вот скриншот:

На скрине приведена таблица базы кидал в старой версии сайта.
Слева - текущая база данных и содержащиеся в ней таблицы. Справа - содержимое выбранной таблицы.

Что такое SQL-инъекция?
Во-первых.
Во вторых, если влом смотреть, цитирую вкратце:
Допустим, серверное ПО, получив входной параметр id, использует его для создания SQL-запроса. Рассмотрим следующий PHP-скрипт:
PHP код:
# Верхний кусочек скрипта...
$id $_REQUEST['id'];
$res mysql_query("SELECT * FROM news WHERE id_news = $id");
# Нижний кусочек скрипта... 
если злоумышленник передаст в качестве параметра id строку -1 OR 1=1 (например, так: http://example.org/script.php?id=-1+OR+1=1), то выполнится запрос:

Код:
SELECT * FROM news WHERE id_news = -1 OR 1=1
Таким образом, изменение входных параметров путём добавления в них конструкций языка SQL вызывает изменение в логике выполнения SQL-запроса (в данном примере вместо новости с заданным идентификатором будут выбраны все имеющиеся в базе новости, поскольку выражение 1=1 всегда истинно).


Ссылки:
Справочник по языку SQL
Официальный сайт MySQL
phpMyAdmin

Алсо
Насчет установки и настройки сервера MySQL и phpMyAdmin - гуглим. Манов полно.

(с) hackersoft.ru. При копировании ссылайтесь на источник
Kanaris вне форума   Ответить с цитированием
Благодарности: 2
Старый 03.01.2009, 22:28   #2
Jensi
intermediate 
 
Аватар для Jensi
 
Регистрация: 24.07.2008
Прописка: 127.0.0.1
Сообщений: 586
Вес репутации: 21 Jensi специалистJensi специалистJensi специалистJensi специалистJensi специалистJensi специалистJensi специалистJensi специалист
Депозит: 0$
Вы сказали Спасибо: 114
Поблагодарили 212 раз(а) в 156 сообщениях
А ведь в денвере тоже есть MySQL,только он чёт не запускается.MySQL нужно отдельно скачивать или можно как-то настроить через денвер?И если что,то какой путь указывать,а то я совсем нифига не понимаю уже.Скачал ещё phpMyAdmin,а там ваще супер-мега бред.

P.S.:если не туда запостил,то простите,т.к. уже этих тем везде...

Windows - это обклеенное долларами помойное ведро с червями и вирусами вообще ниже всякой критики. (c) Леонид Каганов
Jensi вне форума   Ответить с цитированием
Старый 03.01.2009, 23:26   #3
Kanaris
Администратор 
 
Аватар для Kanaris
 
Регистрация: 24.07.2007
Прописка: Везде, где есть воздух
Сообщений: 1,639
Вес репутации: 76 Kanaris экспертKanaris экспертKanaris экспертKanaris экспертKanaris экспертKanaris экспертKanaris экспертKanaris экспертKanaris экспертKanaris экспертKanaris эксперт
Депозит: 0$
Вы сказали Спасибо: 238
Поблагодарили 1,121 раз(а) в 424 сообщениях
Денвер - это "джентльменский набор" из трех (или сколько там) программ. Каждая программа является одной, самой по себе. У меня на компе локалхост без денвера, все установлено и настроено вручную. А пхпмайадмин - это крутая вещь, и нечего на него гнуть
Kanaris вне форума   Ответить с цитированием
Ответ


Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 
Опции темы

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 09:49.


© 2005 — +∞ Hackersoft. Все и вся защищены.
Публичная оферта | Правила форума | Реклама на сайте
Powered by vBulletin®©™ Jelsoft®©™ Enterprises Ltd. Перевод: zCarot.
Реклама на hackersoft.ru Реклама на hackersoft.ru