Segédletek.hu

Segédletek weblap szerkesztéshez!
ingyen letöltés

| Mind | PHP | HTML | CSS | Java |
|Legújabbak |Legtöbbször olvasottak|

MySQL alapfokon - 1:

Sorozat - mysql alapok a kezdetekhez:

Ebben a cikkben megtanuljuk az alapmúveletek a MySQL adatbázissal, kapcsolódunk a kiszolgálóhoz, adatbázist hozunk létre.

Egy idő után mindenképpen szügségünk lesz valamilyen adattárolási módszerre. Ennek két fő útja van (meg még sok más pl. sesssion, sütik, de ezekkel most nem foglalkozunk):
- fájlokban történő adattárolás és
- adatbázisban történő adattárolás.

Az előbbi remélem elég egyértelmű: létehozunk egy fájlt, beleírunk valamit, becsukjuk, aztán azt később kiolvashatjuk. Ennek a hátránya, hogy meglehetősen lassú, és nem minden szerveren adnak hozzá jogot, illetve a fájlok külsőleg elérhetőek lesznek (kivétel persze, ha htaccess-el levédjük, de most ez sem témája a cikknek),
pl. heckerek számára. Így például ha egy regisztrált felhasználó adatit fájlokba mentjük el, és valaki az(oka)t véletlenül megtalálja, akkor máris beléphet bárki nevében.
A fájlokezeléssel és védelemmel később foglalkozunk.

Az utóbbi már egy kicsit érdekesebb. Az adatábzisokat legegyszerűbb, ha könyvtárként képzeljük el, amiben táblák (táblázatok) találhatóak.
Tehát valahogy így:

MySQL kiszolgáló
| - Adatbázis 1
| - Tábla 1
| - Tábla 2
| - Adatbázis 2
| - Tábla 1
| - Tábla 2

Láthatjuk, hogy legfelül a MySQL kiszolgáló van, ami egy telepített programot jelent (általában együtt telepítik az apache webszerverrel, de telepíthető külön is.)
A kiszolgálón belül lehet több adatbázis is, általában csak 1-et használunk (és az esetek nagyon-nagy részében csak 1-hez is van hozzáférésünk).
Az adatbázisokon belül táblák vannak, amik gyakorlatilag táblázatok, tehát sorokból (rows) és osztlopokból (cols) állnak.

Valahogy így:
Első oszlop | Második oszlop | Harmadik oszlop
----------------------------------------------
Érték 1 | Érték 2 | Érték 3
Érték 4 | Érték 5 | Érték 6...

Ne tévesszen meg senkit, az érték 3 és 4 nincsenek egy sorban, mindkettő külön sor (sőt, külön oszlop) eleme.
Így például gyönyörően tárolhatjuk a regisztrált tagokat adatbázisban:

users tábla
felhasználónév | jelszó | email cím
------------------------------------
Dezső | dezso | dezso@dezsonet.hu
Gazsi | jelszo | gazsi@freemail.hu
...

FONTOS!
Az adatábizok, táblák, oszlopok neveiben SOHA ne szerepeljen space (szóköz), ékezetes betű vagy speciális karakter (kivétel _ és -)!
Ugyanis nem minden verziójú és fajta MySQL program fogja tudni kezelni őket (különsen a magyar abc speciális betűit: ű,ő, stb..
Ebben az esetben csak a könnyeb megérthetőség érdekében használtam magyar neveket, nagy kezdőbetűket és szóközöket (a programokba már kisbetűs, angol nevek fognak szerepelni).

Most lássuk, hogy hogyan csatlakozzunk ehhez a furcsasághoz :)

<?php
// MySQL alapfokon - 1. kódrészlet
// ---------------------------------
// Csatlakozás a MySQL adatbázis kiszolgálóhoz.

// először is betöltjük stringekbe a szügséges értékeket
$mysql_username = "root"; // a MySQL felhasználó név általában 'root' (localhoston), de ez változó lehet: pl. az ultraweben a felhasználó név és jelszó megegyezik a regiszrált tárhely adataival
$mysql_password = ""; // localhoston általában nincsen jelszó, így ezt üresen hagyjuk (most)
$mysql_host = "localhost"; // a kiszolgáló ezestben helyi, de lehet változó különböző tárhelyeknél
$mysql_db_name = "testdb"; // a kiválasztani kívánt adatbázis neve: ezesetben a tesztadatbázisunkat nyitjuk meg

// <i>megjegyzés: új adatbázist a mysql_create_db() fügvénnyel hozhatunk létre.</i>

// most csatlakozunk a kiszolgálóhoz a megadott adatokkal
$mysql_connection = mysql_connect($mysql_host, $mysql_username, $mysql_password);

// Ezzel megnyittuk a kapcsolatot, ami remélhetőleg él is :)
// most kiválasztuj a használni kívánt adatbázist
$mysql_database = mysql_select_db($mysql_db_name, $mysql_connection);

?>

Ebben a kódban létrehoztunk egy kapcsolatot egy MySQL kiszolgálóhoz és kiválasztuttuk a használni kívánt adatbázist.
A kapcsolat azonban csak addig élt, amíg a kód futása be nem fejeződött, így érdemes az ilyen kapcsolódó scripteket elmenteni a külön fájlba, amit minden kód elején meghívhatunk az include() fügvénnyel.
(Van egy olyan funkció, ami keep-alive alapon működik, de ezzel most nem foglalkozunk.)

Ahhoz, hogy létrehozzunk egy új adatbázist, használjuk a mysql_create_db() függvényt.
<?php
// MySQL alapfokon - 2. kódrészlet
// ----------------------------------
// Új adatbázis létrehozása.

include("kapcsolat.php"); // meghyvjuk a kapcsolódási függvényt: lásd fenti kódrészlet.

$new_db = mysql_create_db("new_database");
$mysql_database = mysql_select_db("new_database", $mysql_connection); // adatbázist váltunk - <b>figyelem! ez csak ennek a kódnak a lefutásakor fog megtörténni (mármint az adatbázisváltás)! Ha véglegesen át akarunk térni egyikről a másikra, akkor változtassuk meg a kapcsolat.php-t!</b>

?>
Most már van egy új adatbázisunk és ki is választottuk.

Ennyi fért bele rövid(?) cikkembe, hamarosan jön a MySQL alapfokon - 2., figyeljétek az oldalt!
Következő cikkemben műveleteket fogok mutatni, létre fogunk hozni adatbázis táblákat, sorokat szúrunk be és törlünk.

A cikkben használt funkciók:
mysql_connect()
mysql_select_db()
mysql_create_db()
include()

By Gaia

Írta: Gaia - 2006-10-19 16:57:11

* Nem vagy bejelentkezve!
* Nem töltheted le a segédlet forrását egyben!
* Nem szavazhatsz a segédletre!
* Nem írhatsz a segédlethez tartozó fórum témába!


rubin007 2010-04-29 09:01:38
Hali!
Én ezt kapom:
Incorrect table definition; there can be only one auto column and it must be defined as a key
Hogy lehet kijavítani?
axel930414 2008-10-02 15:10:52
Extrán nem lehet létrehozni új adatbázist, hacsak nem fizetsz érte...ha extrán jön ez a hiba ;)
Bucimaci 2008-05-18 16:58:33
Fatal error: Call to undefined function: mysql_create_db() in /create.php on line 16

:S ez hogy lehet?
Firith 2007-03-12 08:15:56
Oda töltöd, ahova akarod, ha nem akarod elérhetővé tenni, csak bekötni akarod, akkor érdemes a wwwroot-on kivül elhelyezni (esetleg egy saját directory-ba), vagy csak simán rakd el valahol a root-on belül
ferris 2007-03-11 11:57:13
aza gond ezzel ,hogy nekem van egy extra.hu-s regisztraciom de nemtom hova toltsem fel ezeket a fajlokat !! melyik mappaba ?van ketto wwroot me ga phpmyadmin gondolom az utobbiba kell...csakhogy ezeken belul is van (save ,temp, upload)tempen belul(docsql,temp)....
Gaia 2006-10-28 10:53:04
A mysql_close()-t azért nem kevertem bele, mert ha csak simán mysql_connect()-el csatlakozunk, akkor a PHP kód lefutásának a végén a kapcsolat autimatikusan lezáródik. A mysql_close()-t egyedül akkor érdemes lezárni, ha új kapcsolatot akarunk nyitni (nem látok semmi okot rá, hogy miért tennénk), vagy ha mysql_pconnect()-et használnuk. Aki meg ismeri a mysql_pconnect()-et és inkább azt használja, akkor az ismeri a mysql_close()-t is.
Mellesleg lesz MySQL haaldóknak is, nem kell aggódni.
raim 2006-10-20 18:36:36
:( mysql_close? Lehetne konkrét példa is.
10.000 €-t keresni havonta
Hogyan keressünk pénzt könnyedén? Kezdjen pénzt keresni még ma!
www.penzt-keresni.net

Internet előfizetés 1850 Ft/hó
Nordtelekom InternetMAX 2Mbps ADSL akció Fix ár egy évig. Jelentkezz szept. 8-ig!
www.nordtelekom.hu

OTP Akciós Befektetések
Az akciós Mobil lekötött betétekre évi 5% kamat az első 90 napra
OTPBank.hu

Folyamatmenedzsment képzés
Eredményes folyamatszervezés gyakorlata reorganizáció, hatékonyságfejlesztés
www.kvalikon.hu

Cégvezetők figyelem
Díjmentes pályázati előminősítés. Sikerdíjas pályázatírás.
www.palyazatiras.ws

Hirdessen itt