这是 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 代码了。
最佳答案
Header::sayfaHeader();
它调用方法而不创建对象。你必须这样做
Header obj = new Header();
obj->sayfaHeader();
如果你想调用类的方法,那么将方法声明为static
。但是你不能使用 $this
引用,因为静态方法和成员没有对类对象的引用。
更新:
mysql_select_db
返回bool
值。您必须使用 $link
变量进行查询。
关于php - 使用oop连接数据库的简单问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10417735/