Hallo,
ich habe mich mal ein wenig an der objektorientierten Programmierung versucht. Allerdings habe ich dadurch ein ziemliches Problem mit der Datenbank bekommen bei dem ich mal Hilfe bräuchte
Der Aufbau ist folgender:
Ich habe meine index.php in die ich mittels require() eine global.php einbinde. In der global.php werden sämtliche Klassen eingebunden und aufgerufen.
Das ganze sieht dann so aus:
class_db.php
global.php
und die index.php
Durch den Aufruf $db->query() scheint das Skript allerdings garnicht erst in die Methode hineinzuspringe.
Seltsamerweise funtioniert die Ausgabe des Templates die auf die gleiche Weise definiert ist problemlos.
ich habe mich mal ein wenig an der objektorientierten Programmierung versucht. Allerdings habe ich dadurch ein ziemliches Problem mit der Datenbank bekommen bei dem ich mal Hilfe bräuchte
Der Aufbau ist folgender:
Ich habe meine index.php in die ich mittels require() eine global.php einbinde. In der global.php werden sämtliche Klassen eingebunden und aufgerufen.
Das ganze sieht dann so aus:
class_db.php
PHP:
class db
{
var $db_host;
var $db_user;
var $db_passwd;
var $db_name;
var $connection;
var $result = array();
function db($db_host, $db_user, $db_passwd, $db_name)
{
$this->db_host = $db_host;
$this->db_user = $db_user;
$this->db_passwd = $db_passwd;
$this->db_name = $db_name;
$this->connect_db();
}
function connect_db()
{
$this->connection = @mysql_connect($this->db_host, $this->db_user, $this->db_passwd);
if(!$this->connection)
$this->error('Verbindung fehlgeschlagen');
if($this->db_name!='')
$this->select_db($this->db_name);
}
function select_db($db_name = '')
{
if($database!='')
$this->db_name = $db_name;
if(!@mysql_select_db($this->db_name, $this->connection))
$this->error('Ungültige Datebank');
}
function query($query, $limit = 0, $offset = 0)
{
if($limit!=0)
$query .= " LIMIT $offset, $limit";
$this->result = mysql_query($query, $this->connection);
return $this->result;
}
function fetch_array($query)
{
$this->query = $query;
$this->result = mysql_fetch_array($this->query);
return $this->result;
}
...
}
global.php
PHP:
<?php
require('./lib/config.php'); # enthält db_zugangsdaten
# database
require('./lib/class_db.php');
$db = &new db($db_host, $db_user, $db_passwd, $db_name);
# template
require('./lib/class_template.php');
$template = &new template();
...
?>
und die index.php
PHP:
require('./global.php');
if(isset($_POST[submit]))
{
$query = $db->query("SELECT * FROM user");
if($db->num_rows($query)==1)
{
foreach($result as $key=>$value)
{
$str .= $key." - ".$value."\n<br />";
}
}
}
eval ('$template->template_out("'.str_replace('"', '\\"', $template->get_template('test') ).'");');
Durch den Aufruf $db->query() scheint das Skript allerdings garnicht erst in die Methode hineinzuspringe.
Seltsamerweise funtioniert die Ausgabe des Templates die auf die gleiche Weise definiert ist problemlos.
Zuletzt bearbeitet: