Véleményem szerint érdemes külön fájlba írni: pl. connect.php Ez azért is hasznos, hogy ha több oldalból áll egy weboldalunk, akkor nem kell minden oldalra leírni a kapcsolatot, hanem elég egyetlen sorral behúzni. Így a hibalehetőség is kisebb a kapcsolat létrehozása során, hiszen a connect.php oldalon leteszteljük, létrejött e a kapcsolat.
<?php
header("Content-Type: text/html;
charset=utf-8");
Amikor
nem szeretnénk az alap HTML vázat beszúrni az oldalunkra, mert pl nincs kimenete,
ennél fogva teljesen felesleges, mint itt ez esetben, akkor megadhatjuk az ún.
header(); függvényben paraméterként a létrehozandó fájl típusát. Ezt használja
leggyakrabban a php, de vannak kivételek, ha pl ajaxot használunk, aminek a
kimenetét xml vagy json állítja elő, akkor abban az esetben a fenti sor helyett
application/json, vagy text/xml kerül a header függvénybe paraméterként, de sok
más típus is lehet, annak megfelelően, mit szeretnénk előállítani.
Ezeket
úgy is hívják, hogy mime típusok, pl: application/javascript; video/x-flv; image/jpeg;
image/png; image/gif;application/zip csak néhány példa a teljesség igénye
nélkül.
A
lényege, hogy nem a fájl kiterjesztéséből nézzük meg, hogy ez milyen típusú
valójában, hanem gyakorlatilag adunk egy olyan típust. Ezt az apach kiszolgáló is
fogja így értelmezni. A karakterkódolást is itt állítjuk be.
Következő
a konstansok létrehozása:
define("DBHOST",
"localhost");
Ezek
konstansok, vagyis nem változók, mivel egy adatbázis lényegében nem változik,
(persze megváltozhat valami, de nem a program futása során, pl meg lehet
változtatni egy áfa összeget az adatbázisban). A konstansok megadása annyiban
különbözik, hogy nem $db_host ként jelöljük, és másként is kell definiálnunk.
Tehát a konstansokat így definiáljuk, hogy a define(), ahol meg kell adni, hogy
hogyan szeretnénk hívni és mi az értéke. A konstansokat tiszta nagybetűvel
szokás írni, de nem kötelező tiszta nagybetűsnek lennie, írhatjuk kicsivel is,
de azért, a csupa nagybetűs segít elkülöníteni őket a kódban. Majd utána
megadjuk, mennyi az értéke, és ez a localhost. Innentől kezdve a mysql_connect-nek
is ezeket a nagybetűs neveket adjuk meg.
define("DBUSER",
"root"); //felhasználónév
define("DBPASS",
""); //jelszó
ami most nincs, ezért üres sztring
define("DBNAME", "adatbázis neve");
adatbázis neve ITT ADD AZT AMI NEVET ADTÁL!!!!
$dbconn = @mysqli_connect(DBHOST,
DBUSER, DBPASS, DBNAME) or die("Hiba az adatbázis csatlakozásakor!");
A
mysqli vissza ad egy erőforrás azonosítót, ami azt jelenti, ha megnyitunk egy
adatbázis kapcsolati szálat, akkor végig azzal fog dolgozni, ezt itt jelen
esetben $dbconn-nak hívjuk és ezt változóként használjuk, nem konstansként,
mert ez menet közben értelemszerűen változhat, egy konstans pedig nem íródhat
át, majd megírjuk az első lekérdezést:
Biztonság
kedvéért így is ellenőrizhetjük a kapcsolat létrejöttét objektum orientáltan:
if ($dbconn->connect_error) {
die("Sikertelen kapcsolódás: " . $dbconn->connect_error);
} else {
echo "Sikeres kapcsolódás.";
}
mysqli_query($dbconn, "SET NAMES
utf8");
Ez
gyakorlatilag ugyanaz, mint az előző mysqli link, majd utána a kérés maga. Ezt
azt jelenti, hogy itt ez a $dbconn fog szerepelni, utána beállítjuk a karakter
készletet, azért, hogy az ékezetek biztosan rendben legyenek, és nem kell
kötőjel, hanem egybe van írva. A karakter kódolásnál a HTML-ben van kötőjel,
SQL-be nincs. Ha ezt így megadjuk, akkor innentől már a kapcsolat felépült, de
még a képernyőn nem fog látszani, mert a php kimenetet nem készít. Miután ez a
kapcsolat létre jött, utána kell különböző kéréseket meg írni, és akkor kapunk
adatokat.
Azért
is érdemes külön fájlba megírni a kapcsolatot, mert egyrészt több fájl fogja
használni ugyanezt a kapcsolat beállítást, másrészt ebben vannak az érzékeny
adatok, és ahol ezeket használni fogjuk, és ezek a beállítások nem fognak
látszani. Tehát ha több fájl van pl 10-20 fájl ami használ ilyen adatbázis
kapcsolódást, és megváltozik majd valami értéke, amikor a teszt környezetből
áttesszük egy éles környezetbe, akkor elég egy helyen átírni az adatokat és az
mindenhol meg fog változni, minden oldalon.
Itt
gyakorlatilag annyi fog történni, hogy ezt a fájlt egy másik fájl be fogja szippantani,
be fogja hívni.
?>
Nincsenek megjegyzések:
Megjegyzés küldése