【发布时间】:2012-05-02 16:19:50
【问题描述】:
这是 dbconnect.class.php:
<?php
class Connect
{
public $error;
protected $db;
public function __construct()
{
$link = mysql_connect("localhost","root","1") or $this->error = mysql_error();
$db = mysql_select_db("tarih",$link);
$this->db = $db;
}
}
?>
这是主要的 php 文件:
<?php
//header.class.php
require_once 'dbconnect.class.php';
class Header extends Connect
{
public $headers = array();
private $baglan;
public function __construct()
{
/*
* Bu sınıf sayfaların header bilgilerini işler.
*/
$baglan = $this->db;
}
public function sayfaHeader($sayfa = true)
{
$sql = "SELECT * FROM header WHERE id='" . $sayfa . "'";
$query = mysql_query($sql,$this->baglan);
}
}
Header::sayfaHeader();
?>
当我运行主 php 文件时,我看到了这个错误:
Fatal error: Using $this when not in object context in C:\AppServ\www\ilk\class\header.class.php on line 19
第 19 行:
$query = mysql_query($sql,$this->baglan);
问题出在哪里?我看不到问题,因为我很久没有写 php 代码了。
【问题讨论】:
-
请停止使用古老的
mysql_*函数编写新代码。它们不再被维护,社区已经开始deprecation process。相反,您应该了解准备好的语句并使用PDO 或MySQLi。如果你想学习,here is a quite good PDO-related tutorial. -
@Truth 这对 mysql 来说不是问题_ 这是面向对象编程的问题
-
我从来没有说过它会解决你的问题。如果我确实这么认为,我会发布它作为答案。我只是说你应该这样做。