|
|
|
|
MySQL elérés PHP osztályokon keresztül |
|
|
|
|
|
|
|
|
|
Üdv, lenne egy Objektum Orientált MySQL lekérdezésem. Találtam egy könyvben, és nem tudok kicsikarni belőle eredményt. Sehogy nem jutok el a lekérdezéshez. Próbálom keresni a megoldást, de ha Valaki tudna segíteni annak hálás lennék. A számozott részek azért vannak megjelőlve, hogy lássam, hogy meddig jut el a program. A stat az adatbázist, a log a tblát jelüli, kéretik konfigolni. Az első "root" a felhasználónév, míg a második a jelszavat takarja. Nem tudom miért, de a "public function fetch_row()" résznél nem megy tovább a dolog. Köszönet!
[code]<?PHP
class DB_Mysql {
protected $user;
protected $pass;
protected $dbhost;
protected $dbname;
protected $dbh; // adatbázis-kapcsolati leíró
public function __construct($user, $pass, $dbhost, $dbname) { // felépíti a $this tagjait
$this->user = $user;
$this->pass = $pass;
$this->dbhost = $dbhost;
$this->dbname = $dbname;
}
protected function connect() { // csatlakozás
$this -> dbh = mysql_pconnect($this->dbhost, $this->user, $this->pass);
if(!is_resource($this->dbh)) {
throw new Exception;
}
if(!mysql_select_db($this->dbname, $this->dbh)) {
throw new Exception;
}
}
public function execute( $query ) { // adatbázisból lekérdez
if(!$this->dbh) {
$this->connect();
}
$ret = mysql_query($query, $this->dbh);
if(!$ret) {
throw new Exception;
}
else if(!is_resource($ret)) {
return TRUE;
} else {
$stmt = new DB_MysqlStatement($this->dbh, $query); //meghívja a másik osztályt
$stmt->result = $ret;
return $stmt;
}
}
}
class DB_MysqlStatement {
public $query;
protected $dbh;
public function __construct($dbh, $query) {
$this->query = $query;
$this->dbh = $dbh;
if(!is_resource($dbh)) {
throw new Exeption("Not a valid database connection");
}
echo "1";
}
public function fetch_row() {
echo "2";
if(!$this->result) {
throw new Exception("Query not executed");
}
return mysql_fetch_row($this->result);
}
public function fetch_assoc() {
echo "3";
return mysql_fetch_assoc($this->result);
}
public function fetchall_assoc() {
echo "4";
$retval = array();
while($row = $this->fetch_assoc()) {
$retval[] = $row;
echo "SIKERES LEKÉRDEZÉS";
}
return $retval;
}
}
$dbh = new DB_Mysql("root", "root", "localhost", "stat");
$query = "SELECT * FROM log";
$stmt = $dbh->execute( $query );
?>[/code]
- kisPocok - | |
|
|
|
|
|
|
|
|
| | | | | nem hívtam meg a függvényt :) ennyi az egész :D | | | | |
| |
| | |
|
|
[1-15] |
| | |
|