db_fuggvenyek.php
Végül eljutottunk a tényleges adatbáziskezelésig. A db_fuggvenyek.php-ban két függvényt definiálunk. Egyet a csatlakozáshoz, egyet pedig könyvek felviteléhez. Megjegyezzük, hogy minden adatbáziskezeléshez hasonlóképpen kellene eljárni Külön függvényeket kell készíteni, amelyeket az űrlapokotól és a feldolgozó oldalaktól elkülönítve tárolunk (olyan jogosultsággal, amely kívülről nem látható).
Az adatbázishoz történő csatlakozás a konyvtar_csatlakozas() függvényben van megvalósítva. Itt ki is választjuk az adatbázist és be is állítjuk a karakterkódolást az adatok kezelése előtt.
A konyvet_beszur() függvény paraméterül kapja a könyv adatait. Először meghívjuk a konyvtar_csatlakozas() függvényt a csatlakozáshoz, majd előkészítjük az adatok beszúrását. Az újabb PHP változatok már az alábbi megoldásokat preferálják. Az INSERT INTO utasítást a mysqli_prepare() függvénybe írjuk bele, azonban az értékeket nem itt adjuk meg, helyükre kérdőjeleket írunk. Az értékek megadásának biztonságos módja az SQL utasításhoz történő hozzákötés a mysqli_stmt_bind_param() függvény segítségével. Ennek második paramétere egy olyan (formátum)sztring, amely megmondja a függvénynek, hogy mely változót milyen típusúnak kell tekintenie (s=sztring, d=egész szám). Ezt követően a mysqli_stmt_execute() függvénnyel kell végrehajtani az utasítást.
Természetesen, a PHP-ben is megjelent már az objektum-orientált szemlélet és a fenti metódusok objektum-orientált változatai is alkalmazhatók.
<?php
function konyvtar_csatlakozas() {
$conn = mysqli_connect("localhost", "root", "") or die("Csatlakozási hiba");
if ( false == mysqli_select_db($conn, "KONYVTAR" ) ) {
return null;
}
// a karakterek helyes megjelenítése miatt be kell állítani a karakterkódolást!
mysqli_query($conn, 'SET NAMES UTF-8');
mysqli_query($conn, 'SET character_set_results=utf8');
mysqli_set_charset($conn, 'utf8');
return $conn;
}
function konyvet_beszur($konyvszam, $szerzo, $cim, $kiado, $ev) {
if ( !($conn = konyvtar_csatlakozas()) ) { // ha nem sikerult csatlakozni, akkor kilepunk
return false;
}
// elokeszitjuk az utasitast
$stmt = mysqli_prepare( $conn,"INSERT INTO KONYVEK(konyvszam, szerzo, cim, kiado, ev) VALUES (?, ?, ?, ?, ?)");
// bekotjuk a parametereket (igy biztonsagosabb az adatkezeles)
mysqli_stmt_bind_param($stmt, "ssssd", $konyvszam, $szerzo, $cim, $kiado, $ev );
// lefuttatjuk az SQL utasitast
$sikeres = mysqli_stmt_execute($stmt);
// ez logikai erteket ad vissza, ami megmondja, hogy sikerult-e
// vegrehajtani az utasitast
mysql_close($conn);
return $sikeres;
}
?>