PHP - oop (hol a hiba)?
Sziasztok, több fájlban akarom tárolni a dolgaimat, most konkrét példaként config.php és functions.php
config.php tartalmazza az adatbázis csatlakozáshoz szükséges dolgokat, functions php pedig a funkciót:
config.php:
<?php
class config
{
public static $host="localhost";
public static $user="root";
public static $pass="";
public static $db="adatbazis1";
}
?>
functions.php:
<?php
class connect{
$conf= new config();
$kapcsolat = new mysqli($conf->host,$conf->user,$conf->pass,$conf->db);
if ($kapcsolat->connect_errno) {
echo "Failed to connect to MySQL: (" . $kapcsolat->connect_errno . ") " . $kapcsolat->connect_error;
}
echo $kapcsolat->host_info . "<br />";
}
?>
Hol hibázok ? Gondolom rosszul hivatkozok az első fájlban található dolgokra, de mégis hogyan kéne ?
Azért létrehozni egy class-t, hogy 4 változót táolj benne teljesen felesleges, és erőforráspazarló megoldás.
Ráadásul a connect class-nak semmilyen értelme nincs.
Egyrészt ne deklarálod benne a változókat, a függvényeket, másrészt nem echo-zhatsz ki belőle így.
A functions.php-ban, egyébiránt be kéne include-olni a config.php-t, mert így nem találja meg.
incluce_once('config.php');
Egyszerűbb lenne, ha a config.php a csatlakozási információkat egy egyszerű tömbben, vagy 4 változóban tartalmazná, és a functions.php-ban létezne egy jól megírt class, ami az adatbázis műveletekkel foglalkozna, mint csatlakozás, lekérdezések. A konstruktorral létrehozol egy kapcsolati objektumot, ami az adatbázishoz való kapcsolódást egy paraméterezett függvénnyel elvégzi, majd ezt az objektumot használhatod az egyéb lekérdezésekhez.
Így vhogy:
config.php:
<?php
$host = "localhost";
$user = "user";
$pass = "password";
$db = "database";
?>
functions.php:
<?php
class connect {
public kapcsolat;
function kapcsolodas($host = '', $user = '', $pass = '', $db = '') {
$this->kapcsolat = mysql_connect($host,$user,$pass);
if ($this->kapcsolat) {
mysql_select_db($db, $this->connection);
return $this->connection;
} else {
return false;
}
}
}
?>
Meghívás pedig pl index.php-ben:
<?php
...
include_once(config.php);
include_once(functions.php);
$db = new kapcsolodas($host, $user, $pass, $db);
...
?>
Persze ez még csak a kapcsolódási rész, sok minden hiányzik belőle, mint pl a lekérdezési függvények, hibakezelés, stb... De ezt már rád bízom.
Ha elakadsz, elég sok db class található a neten, amiből ötletet meríthetsz, vagy felhasználhatsz. Pl. ez nagyon hasonló ahhoz amit írtam:
Sok sikert!
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!