PHP - Část XVII. (MySQL - vytvoření nové databáze) - Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



PHP

PHP - Část XVII. (MySQL - vytvoření nové databáze)

23. října 2000, 00.00 | pokračování oblíbeného seriálu. Díl vhodný nejen pro uživatele MySql, ale obecně relačních db dostupných z PHP.

V této části se již budeme zabývat spoluprací PHP s MySQL. Předpokládám, že již máte na svém systému nainstalováno MySQL. Při instalaci MySQL se automaticky vytvořily 2 dostupné databáze. Jedna se jmenuje mysql a slouží k uchování přihlašovacích jmen a hesel k dalším databázím, druhá se jmenuje test a slouží k testovacím účelům. My bychom ji pro začátek samozřejmě mohli použít, ale abychom se naučili vytvářet nové databáze, vytvoříme si pro naše testovací účely databázi novou.
Abychom mohli v PHP pracovat s MySQL, musíme se k němu připojit (předpokládám, že máte spuštěného mysql daemona). V PHP existuje pro připojení k databázi funkce MySQL_Connect();. Její syntaxe:

MySQL_Connect(string počítač, string uživatel, string heslo);

Jako počítač uvádíme adresu počítače, na kterém MySQL běží. V případě, že máte MySQL instalováno na lokálním počítači, je tato adresa localhost. Parametr uživatel můžete vynechat, stejně tak i heslo. Kdybyste ale měli MySQL databázi na nějakém vzdáleném serveru, museli byste o tyto údaje požádat správce serveru (přístupovým právům se budeme věnovat někdy v budoucnu). Jestliže vám MySQL běží na lokálním počítači, můžete dokonce vynechat i parametr počítač, protože pro tuto funkci je hodnota localhost výchozí. Funkce vrací číslo spojení na databázi MySQL. Toto číslo slouží pro identifikaci spojení v ostatních funkcích PHP pro práci s MySQL, proto bude připojení k databázi MySQL uloženo v proměnné:

$spojeni = MySQL_Connect("localhost");

Abychom si našimi skripty mohli být opravdu jisti, raději si ověříme, zda spojení s MySQL proběhlo v pořádku:

if(!$spojeni):
   echo "ERROR: nelze navázat spojení s databázovým serverm !!!";
endif;

Pokud spojení proběhlo v pořádku, máme v $spojeni uloženo číslo spojení s MySQL, které budeme využívat v dalších funkcích.
Další funkcí PHP se kterou se seznámíme, je funkce pro vytvoření nové databáze. Její syntaxe:

MySQL_Create_DB(string databáze, integer spojení);

Jako databáze uvedeme jméno nové databáze, která se má vytvořit. Toto jméno by nemělo obsahovat diakritické znaky a mezery (nejlépe používejte jen znaky anglické abecedy a podtržítka). Za parametr spojení dosadíme již existující $spojeni, která identifikuje spojení s databázovým serverem. V případě, že tento parametr vynecháme, použije se poslední vytvořené spojení. My si nyní vytvoříme novou databázi se jménem php, kterou budeme využívat pro naše testovací skripty.

MySQL_Create_DB("php", $spojeni);

Pokud vše proběhlo v pořádku, vrací funkce logickou hodnotu TRUE, v opačném případě vrací FALSE. Opakem této funkce je funkce pro smazání již existující databáze. Tato funkce se jmenuje MySQL_Drob_DB(); a má stejné parametry jako funkce pro vytvoření nové databáze.

Nyní již, předpokládám, máte vytvořenou databázi se jménem php. Tato databáze je zatím prázdná - neobsahuje žádné tabulky s daty. Pro vytvoření nové tabulky již musíme zkombinovat dva jazyky. Jazyk SQL a jazyk PHP. Jestliže chceme v databázi vytvořit novou tabulku, musíme nejprve nadefinovat, jaká data a v jakém formátu bude obsahovat. Musíme tedy definovat jména a datové typy jednotlivých položek. Jazyk SQL pracuje s podobnými datovými typy jako některé programovací jazyky. Přehled nejpoužívanějších datových typů:

Datový typ  Popis
int = celé číslo v rozsahu -2 147 483 648 až 2 147 483 647
smallint = celé číslo v rozsahu -32 768 až 32 767
tinyint = celé číslo v rozsahu 0 až 255
float = číslo s pohyblivou řádovou čárkou
decimal(p) = desetinné číslo s p platnými číslicemi
decimal(p, d) = desetinné číslo s p platnými číslicemi a d platnými desetinnými místy
money = číslo jako peněžní částka (tento typ je snadno nahraditelný např. pomocí decimal(10, 2))
char(x) = textový řetězec o délce x znaků (nejvíce však 255)
varchar(x) = textový řetězec o délce maximálně x znaků (nejvíce však 255)
time = čas ve formátu HH:MM:SS
date = datum ve formátu RRRR-MM-DD
datetime = datum a čas ve formátu RRRR-MM-DD HH:MM:SS
blob = speciální datový typ pro uložení binárních dat (soubory...)

V jazyce SQL samozřejmě existuje více datových typů, zde jsou uvedeny jen ty nejdůležitější. Zájemce o bližší zkoumání datových typů MySQL odkazuji na originální dokumentaci, kterou jste si stáhli s MySQL.

Nyní již k vytvoření nové tabulky v naší databázi php. Slouží k tomu SQL příkaz CREATE TABLE. Jeho použití si ukážeme na obvyklém příkladě, který je použit ve většině knih o SQL, popřípadě i v knihách o relačních databázích. Vytvoříme si tabulku s údaji o zaměstnancích nějaké fiktivní firmy. Tabulka bude obsahovat rodné číslo zaměstnance, jeho jméno + příjmení, adresu a plat. Do $sql si uložíme SQL příkaz pro vytvoření tabulky s danou strukturou:

$sql = "CREATE TABLE zamestnanci (
                       rc char(11) NOT NULL PRIMARY KEY,
                       jmeno varchar(40),
                       adresa varchar(60),
                       plat decimal(10, 2));";

Tento SQL příkaz říká, že se má vytvořit tabulka s názvem zamestnanci a má obsahovat položky:
rc = rodné číslo - primární klíč tabulky - nesmí být prázdný
jmeno = jméno a příjmení zaměstnance
adresa = adresa zaměstnance
plat = plat zaměstnance

V SQL příkaze jsme použili několik dalších vlastností. Jednou z nich je vlastnost PRIMARY KEY, která dané položce určuje, že bude primárním klíčem. Jelikož každý záznam v tabulce musí obsahovat primární klíč, musí být u této položky vlastnost NOT NULL, která určuje, že daná položka nesmí být prázdná. V tabulce musí mít každý záznam jedinečný primární klíč, proto je nutné v tabulce určit za primární klíč položku, u které je zřejmé, že se v tabulce nebudou její hodnoty opakovat. V našem případě položka rodné číslo.

Teď si ukážeme, jak tento SQL příkaz využít pomocí PHP. V PHP existuje pro provádění SQL příkazů funkce MySQL_DB_Query();. Její syntaxe je následující:

MySQL_DB_Query(string databáze, string SQL příkaz, integer spojení);

Za atribut databáze doplníme jméno existující databáze, do které se má přidat daná tabulka. Jako atribut SQL příkaz uvedeme SQL příkaz, který se má vykonat. A poslední atribut je stejný jako u předešlých funkcí - doplníme existující spojení s databázovým serverem. Pro vytvoření naší tabulky zamestnanci tedy použijeme:

MySQL_DB_Query("php", $sql, $spojeni);

Místo $sql bychom zde samozřejmě mohli vypsat celý příkaz CREATE TABLE, ale pro přehlednost se tato záležitost většinou řeší pomocí pomocné proměnné (v našem případě $sql).

Tímto bychom měli mít vytvořenu v databázi php novou tabulku zamestnanci s danou strukturou. Pokud vše proběhlo v pořádku, vrací funkce logickou hodnotu TRUE, v případě selhání vrací FALSE.

Většinu těchto operací můžeme řešit i přímo pomocí řádkového klienta MySQL (spouštěcí soubor mysql.exe), do kterého zapisujeme přímo SQL příkazy, které se mají provádět nad danou databází.

Pro dnešek vše, příště se naučíme vkládat data do tabulek.

Obsah seriálu (více o seriálu):

Tématické zařazení:

 » Rubriky  » PHP  

 » Rubriky  » Web  

 

 

 

Nejčtenější články
Nejlépe hodnocené články

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: