php - 使用oop连接数据库的简单问题

标签 php mysql oop

这是 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/

相关文章:

javascript - 如何在 cURL 请求中传递 Javascript 操作

php - 代码wordpress插件保存到Mysql数据库

mysql - MySql 查询语法错误

c# - 将表从一个数据库复制到同一服务器上的另一个数据库

java - 接口(interface)方法可以重载吗?

c++ - 由于缺乏反射,在 C++ 中不可避免地会有一个大的 switch block 吗?

java - 为什么DTO中有Setter的角色

php - 混合两个互连的表

php - SQL优化查询

php - 在 MySQL 数据库中制作用于编辑字段的表单的快速而肮脏的方法