Home


  FAQ Jak to vlastně je z MySQL?

Johny / 16.1.2002 /

SQL je vlastně jazyk určený pro kladení dotazů na databázi. Předpokládám, že MySQL server už máte nainstalovanej, dále předpokládám, že k databázi chcete přistupovat prostřednictvím PHPka.
Nejprve uvedu příkazy PHPka a pak se zaměřím na samotnej jazyk SQL.



Jeden z nejdůležitějších příkazů je příkaz pro připojení na databázový server.

MySQL_Connect("pocitac","uzivatel","heslo");

počítač - jméno a nebo IP adresa počítače, na kterém běží MySQL server, pokud běží na stejném pčítači, jako web server stačí uvést "localhost" a nebo "127.0.0.1".
uživatel - uživatelské jméno, pod kterým se připojujete, můžete uvést root, při nevyplnění se použije výchozí hodnota
heslo - vaše heslo, při nevyplnění se přistupuje bez hesla

příklad:

$spojeni = MySQL_Connect("localhost");

proměnou $spojeni budeme dále využívat v dotazech na server. Spojení ze serverem bude automaticky ukončeno po ukončení běhu scriptu.



Další příkaz, bez kterého se neobejdete, je příkaz pro vytvoření databáze.

MySQL_Create_DB("jmeno_databaze",$spojeni)

jako spojení se použije proměná, kterou jsme získali při MySQL_Connect() příklad vytvoření databáze jménem pokusna_databaze vypadá takto.

MySQL_Create_DB("pokusna_databaze",$spojeni);



Protože se každá databáze skládá z tabulek, tak budeme potřebovat vytvořit tabulku, pak budeme chtít do tabulky dostat data, a v neposlední řadě budeme chtít tabulku prohledávat. Pro všechny tyto úkony se používá jeden příkaz PHPka.

$vysledek = MySQL_DB_Querry("databaze","sql-dtaz",$spojení);

Tato funkce je do značné míry univerzální, dá se s ní prohledávat tabulka, vkládat data, mazat data atd... co se provede je dáno právě parametrem sql-dotaz. Proto dále budu probírat konkrétní dotazy jazyka SQL.



SQL příkaz na vytvoření tabulky bude vypadat asi takto.

CREATE TABLE jmeno_tabulky (jmeno_1_sloupce typ, jmeno_2_sloupce typ, ...............);

Konkrétní příklad: chci vytvořit tabulku jménem "users" a vytvořit položku "jméno" a "heslo" do proměné $sql si celej příkaz pro přehlednost uložím do proměné $sql.

$sql = "CREATE TEBLE users (jmeno varchar(40), heslo varchar(40));
$vysledek = MySQL_DB_Querry("pokusna_databaze", $sql, $spojení);



SQL příkaz na vložení dat do tabulky bude vypadat takto:

INSERT INTO jméno_tabulky VALUES (hodnota_1_položky, hodnota_2_položky);

Konkrétní příklad: chci do tabulky "users" v databázi "pokusna_databaze" přidat moje jméno a heslo. Dotaz sql si zase uložím do proměnné $sql.

$sql = "INSERT INTO users VALUES (\"Johny\", \"heslo\")";
$vysledek = MySQL_DB_Querry("pokusna_databaze", $sql, $spojení);



SQL příkaz pro prohledávání databáze.

SELECT jméno_položky FROM jmeno_databaze WHERE položka = něčemu

Teď zkusím prohledat databázi pokusna_databaze a budu hledat heslo uživatele Johny. Předpokládám, že dále budu chtít porovnat nalezené heslo s heslem, které zadal.

$sql = "SELECT heslo FROM users WHERE jmeno = \"johny\"";
$vysledek = MySQL_DB_Querry("pokusna_databaze", $sql, $spojení);

Nalezené výsledky jsou v proměné $výsledek, proto použiju nasledující kód, abych z ní získal heslo.

while($zaznam = MySQL_Fetch_Array($vysledek)):
echo $zaznam[heslo];
endwhile;

Tento případ by vypsal heslo uživatele, pokud by hledání vyhovělo více záznamů, vypsaly by se zasebou.



Pokud si uživatel Johny bude chtít změnit heslo provede se to následovně:

UPDATE jméno_tabulky SET jméno_sloupce = položce WHERE jméno_sloupce = položce.

Uživatel Johny má nové heslo moje_nové_heslo, na příkladu to je vidět.

$sql = "UPDATE users SET heslo=\"moje_nove_heslo\" WHERE jmeno = \"johny\"";
$vysledek = MySQL_DB_Querry("pokusna_databaze", $sql, $spojení);

Záznam byl změněn.



Chcete-li z databáze nějakej záznam smazat použijete následující příkaz

DELETE FROM jméno_tabulky WHERE jméno_sloupce = výraz

Prohledám naší databázi pokusná_databáze a smažu uživatele Johny.

$sql = "DELETE FROM users WHERE jmeno = \"johny\"";
$vysledek = MySQL_DB_Querry("pokusna_databaze", $sql, $spojení);

Tímto byl záznam odstraněn.