Új hozzászólás Aktív témák

  • DNReNTi

    őstag

    válasz Sk8erPeter #15477 üzenetére

    Na hogy végre valami érdemi dologról legyen szó. :K

    Elkészült az adatbázis kezelő "projektem" 1.2 verziója, az észrevételek figyelembevételével. Update-ek:

    - Van konfigurációs osztály, amely később minden egyéb más konfigurációs feladatot elláthat. A getDatabaseConfiguration() metódus konfig fájlból beolvassa a szükséges adatokat, majd egy tömbben tér velük vissza.

    - Ennek folyománya hogy megváltozott a kapcsolatot létrehozó osztály. első kérdés lehet miért szerepel benne az ini_set();. Sajnos ha a host rosszul van megadva a try ellenére is hibákkal bombáz szét a php, így viszont nem. Ezúttal csak a megjelenítés van kikapcsolva nem a reporting, ahogy Sk8erPeter írta korábban. Ha minden jól megy egy mysqli objektumot ad vissza, ha nem, akkor kivétellel elszáll, és átmenetileg a csodás die() függvény szolgáltatását igénybe véve véget vet a futtatásnak. Erre mindenképp szeretnék valami szebb megoldást, de a try-ból nem lehet kiugrani header-el hibaoldalra.

    - A legtöbb változás magát a lekérdezést kezelésért felelős osztályt érintette. Egy halom privát metódusra szedtem az ellenőrzést, valamint született egy szintén privát executeQuery() nevű metódus, ami a futtatással bezárólag elvégez minden ellenőrzést, idáig minden lekérdezés ugyan úgy fordul le. Három különböző metódusra bontottam a lekérdezéseket, azok típusainak megfelelően, egyelőre tehát van select(), insert(), update() metódus. A select() eredmény tömbbel, az update() az érintett sorok számával az insert() pedig az utolsó beillesztett id-val tér vissza.

    Használata alig változott, például:
    $DB = new Database();
    $SQL_command = 'SELECT content FROM example WHERE id = ? AND active = ?';
    $SQL_parameters = array(547,1);
    try {
    $result = $DB->select($SQL_command, $SQL_parameters);
    } catch (Exception $e) {
    echo 'ERROR : ' . $e->getMessage() . '<br>';
    }

    Osztálybetöltés autoloader-rel van megoldva. Egyelőre úgy látom minden szuperül működik, és így az én két üveg Heinekentől csipás szememmel megfigyelve, sikerült többnyire implementálni az észrevételeiteket.

    Kérdések:
    - Jó e?
    - Hogyan oldjam meg szépen, hogy az openConnection() metódus, hiba esetén (nem sikerül kapcsolódni az adatbázishoz), egy header()-rel adott hibaoldalra dobjon?

    Köszi!

Új hozzászólás Aktív témák

Hirdetés