Ben geri veritabanından bazı verileri almak için bir php nesnesini çağıran bir html sayfası var. Bu iyi çalışır, ancak komut hantal başlamıştı bu yüzden işlevleri bir grup içine bazı patlak verdi.
Yani aşağıdaki dosyaları var:
// htdocs/map.php
<?php
include("config.php");
include("rmap.php");
$id = 1;
$gamenumber = getGameNumber($id);
echo $gamenumber;
?>
// htdocs/config.php
<?php
$_PATHS["base"] = dirname(dirname(__FILE__)) . "\\";
$_PATHS["includes"] = $_PATHS["base"] . "includes\\";
ini_set("include_path", "$_PATHS[includes]");
ini_set("display_errors", "1");
error_reporting(E_ALL);
include("prepend.php");
?>
// includes/prepend.php
<?php
include("session.php");
?>
// includes/session.php
<?php
includes("database.php");
class Session {
function Session() {
}
};
$session = new Session;
?>
// includes/database.php
<?php
include("constants.php");
class Database {
var $connection;
function Database() {
$this->connection = mysql_connect(DB_SERVER, DB_USER, DB_PASS) or die(mysql_error());
mysql_select_db(DB_NAME, $this->connection) or die(mysql_error());
}
function query($query) {
return mysql_query($query, $this->connection);
}
};
/* Create database connection */
$database = new Database;
?>
// includes/rmap.php
<?php
function getGameNumber($id) {
$query = "SELECT gamenumber FROM account_data WHERE usernum=$id";
$result = $database->query($query); // line 5
return mysql_result($result, 0);
}
?>
Ve sabitler içinde define (DB_USER, vb) bir grup vardır.
Yani, map.php Config.php içerir. Bu olduğu takdirde, session.php içeren ve database.php içerir prepend.php içerir. map.php da database
nesnesini kullanmaya çalışır rmap.php içerir.
Sorun olsun bir
Fatal error: Call to a member function on a non-object in C:\Develop\map\includes\rmap.php on line 5
Bu olağan neden $ veritabanı nesne başlatıldı / yaratılmış olmasıdır, ama ben ne zaman çağrılır, hangi göstermek için kod eklerseniz (echo "DB connection created";
ve üzeri echo "using DB connection";
) dedikleri doğru sırayla (ya da en azından görüntülenir).
I include("database.php")
rmap.php eklerseniz ben constants.php yılında şeyler yeniden tanımlanması hakkında hataları olsun. Ben kullanırsanız require_once
Ben daha önce olduğu gibi aynı hataları almak.
What am I doing wrong here?