Работа с бази данни

Работа с бази данни. Започнете.

Защо и как да се използва базата данни. Основни функции.

Всичко, което мога да кажа като препоръка да се използва база данни - е, че живота без тях - само смърт! База данни - Търсейки лъчи shnogo светлина в тъмнината тълкува програмни данни. Базата данни носи малко главоболие, но това отнема много повече.







Като пример, взет сървър MySQL база данни (аз вярвам, че го усвоили, ще научите, а другият без много затруднения. Някой ден ще пиша за тях, ако той osvoyu :).

Първо ще говорим за функцията PHP се използва за работа с MySQL. Нека да започнем.

1. Администриране на бази данни

Методи за администриране на бази данни, с цел удобство:

  • PhpMyAdmin (силно препоръчително!)
  • Напишете скрипт, който нарушава основата (вж. Пример)
  • mysql.exe в MySQL пакет
  • mysql_manager.exe (там, като това е възможно, просто на ръба на шаманизма)

Особено ми препоръча първия метод. Тъй като тя не трябва да се проучи исканията Промяна на таблица, добавяне на колона и т.н. Аз не ги знам още. Още повече, че "такива въпроси, другарю посланик, с kondachka не решават" - когато трябва да се промени автоматично структурата на базата данни или таблицата? Няколко думи за втория метод. Това е така да се каже техника байпас, че съм използвал, без да знаят за PhpMyAdmin и полезност mysqldump. Сценарият, написан от екипа, премахване на основата и да се създаде отново. След това помогна, но като цяло това е, още веднъж казвам, байпас технология, "резервен" вариант.

За бъдещето: ако имате повече от един сайт с помощта на база данни, най-малко, да създадете няколко бази данни в рамките на дома сървъра. Това ще улесни работата на сървъра и се елиминира възможността от объркване таблици. Като цяло, правилата на базата данни са същите, както и на сайта - да се запази в отделна директория от другата.

2. Съединение с базата данни на сървъра

извършена от mysql_connect функция: $ свързване = mysql_connect (<хост>, <логин>, <пароль>); По подразбиране, MySQL-сървър в таблицата потребител има корен на потребителя, който може да бъде достъпен само от Localhost-добре, че е от същия компютър, където има сървъра MySQL. ВНИМАНИЕ! "Достъпът до Localhost-нататък" означава, че достъпът е вашият PHP скрипт, и можете да получите достъп до него от всеки друг компютър.

Какво се случва, когато ние наричаме mysql_connect функция? От началото на изпълнението на скрипта, PHP разпределя паметта си пространство за информация за него и неговите променливи. Информацията за изпълнен сценария се съхранява, включително информация и бази данни връзки. Променливата $ свързват - приблизително указател към мястото, където се съхранява информацията. Отчасти, това е точно същата като на другите - ако използвате функцията, е необходимо да се декларират глобални променливи, които се отнасят до него.







Защо дори използвате променлива? Такъв е случаят, ако работата ви се наложи да използвате няколко сървъра на база (или, например, да се осигури по-голяма сигурност, който използвате различни данни, които могат да имат различни привилегии). В такива случаи, всяко искане се нуждае от сигурност за това, което, така да се каже, има команда канал. Но ако използвате само една връзка, се определят неговите параметри в функции за заявки (за тях - по-долу) не е нужно да - Php е първият (и в този случай само) осъществили връзка и го използва.

3. искане за вземане на проби и обработка на резултатите

Механизмът на базата данни за функция заявки същата като тази на функцията на връзката: заявка функция параметри, предавани и (ако е необходимо) на съединението и резултатът се съхранява в променлива:

$ Резултати = mysql_db_query (низ база данни, низ заявка [съединения променлива]);

$ Резултати = mysql_query (низ заявка [съединения променлива]);

ВНИМАНИЕ! За да използвате функцията mysql_query, в който не е посочен в базата данни, трябва първо да изберете базата данни:

mysql_select_db (низ база данни);

Сега имаме променлив резултат от $. Това е указател към резултата от запитването. Има определен брой редове в таблицата. Вземете тези линии е възможно чрез mysql_fetch_row на функция и mysql_fetch_array:


ехо "

";
докато ($ ред = mysql_fetch_array ($ резултат))
ехо "";
ехо "
"$ Ред [" Field1 "]""$ Ред [" Field2 "]"
";

mysql_fetch_array функция произвежда определен променлива (в този случай, $ ред) индексите на масиви, които - поле имена (и, ако заявите писмено списък на полета table.field, индексът на масива е поле). mysql_fetch_row произвежда масив чийто индекс - брой, като се започне с 0.

Каква е функцията на по-доброто използване? Ако заявите звездичка, т.е. всички области, посочени в таблицата, както и изходни полета до известна posledovatelnosi (когато, например, маса, съставен капачка), по-добре е да използвате mysql_fetch_array. Ако заявите една и две три нива, ясно знаят тяхната последователност, можете да направите mysql_fetch_row - това ще намали размера на кода на програмата.

4. Искане за действие

Тази команда изтриване и актуализиране. Такива искания - в "Правата" са същите като за избиране, така че сървърът изпращане на команди се случва по същия начин - mysql_query (mysql_db_query). Но в този случай, функцията не връща резултат:

$ Резултат = mysql_query ( "SELECT * FROM sometable");
но
mysql_query ( "изтрива от sometable КЪДЕТО ID =.");

Съответно, ако се изпълни заявката, донесе и запишете резултата в променливите данни няма да бъдат съхранявани навсякъде.

5. Заявленията за обработка на грешки

последно съобщение за грешка може да се получи чрез mysql_error функция:

ехо: mysql_error (); "А грешка база данни MySQL, пише".

Ако резултатът от функцията е писано в променлива, можете да го проверите:

$ Резултат = mysql_query ($ заявка);
ако (! $ резултат)
ехо: mysql_error (); "А грешка база данни MySQL, пише".
друго ехо "

";
докато ($ ред = mysql_fetch_array ($ резултат))
ехо "";
ехо "
"$ Ред [" Field1 "]""$ Ред [" Field2 "]"
";
>;

Ако променливата не пише, така че:


$ Заявка = "UPDATE (.)";
mysql_query ($ заявка);
ако (! mysql_error ())
ехо "актуализация на данните е била успешна!";
друго ехо ". грешка в базата данни MySQL пише:", mysql_error ();

Ако искането се генерира автоматично, можете да видите и самата заявка (полезно да се създаде променлива, която ще го съдържат, и да го използвате като параметър на функция).