2009-07-11 15 views
0

私はここで間違っていますか?OOPの致命的なエラー

<?php 
include 'header.php'; 

/** 
* Display a user's profile 
*/ 

$id = $db->real_escape_string($_GET['id']); 
$user_res = $db->query("SELECT * FROM users WHERE id = $id"); 
$user = $user_res->fetch_assoc(); 
?> 

<h1><?php echo $user['username'] ?>'s Profile</h1> 

<?php 
include 'footer.php'; 
?> 

がに等しい:
Fatal error: Call to a member function real_escape_string() on a non-object in C:\wamp\www\test\profile.php on line 12</pre>

+0

$ dbはオブジェクトとして定義されていないため、PHPはそれを好きではありません。あなたのheader.phpファイルに$ dbに関する適切な情報が含まれていないようです。 – tomzx

+0

あなたは実際にはどんな種類のdbオブジェクトを持っていますか、mysql_real_escape_string()、mysql_query()およびmysql_fetch_assoc()を探していますか? – deceze

答えて

2

あなたは、変数$dbを持っていない、または$dbは、あなたが期待するデータベースオブジェクトではありません。最初に作成するか、header.phpに作成する必要がありますが作成してはいけません。

-1
あなたのラインで

$db->real_escape_string($_GET['id']); 

$dbオブジェクトのはずが、どうやらそれは何かありませんオブジェクト何かのいずれかではありません。ある時点でオブジェクトをインスタンス化(作成)する必要があります。

$db = new DatabaseObject(); 
// substitute "DatabaseObject" with the actual name of the Class 

あなたはそうしましたか?