OOP PHP连接和选择功能

时间:2014-03-22 09:22:09

标签: php mysql oop

嘿,伙计们,我遇到了以下问题。我有一个具有完全工作的连接函数的数据库类,我现在想在我的其他类新闻中使用这个myconn变量。无论我采用哪种方式,我都会收到错误消息。其中一条消息是;

在第10行的C:\ Users \ PC \ Documents \ XAMPP \ htdocs \ class.News.php中的非对象上调用成员函数prepare()

我是OOP的新手,所以非常感谢任何帮助。

class.Database

<?php

class Database{

private $db_host = 'localhost'; 
private $db_user = 'c3337015'; 
private $db_pass = 'c3337015'; 
private $db_name = 'iitb'; 
public $myconn;

public function connect(){

if(!isset($this->myconn)){

$this->myconn = mysqli_connect($this->db_host,$this->db_user,$this->db_pass,$this->db_name);

if($this->myconn){
    echo "connected"; // echoing just for testing purposes
    return true; 
}else{
echo "failed";
return false; 
}}else{
echo "already connected";
return false; 
}
 }

public function disconnect()
{
if(isset($this->myconn))
{
    if(mysqli_close($this->myconn))
    {
        $this->myconn = false; 
        echo "connection closed";
        return true; 
    }
    else
    {
    echo "failed to close connection";
        return false; 
    }
}else{
    echo "no connection prescent";
}
}

}

class.News

<?php
require_once('class.Database.php');
class News extends Database{

function getNews(){

$me = new Database();
$me->connect();
// HOW DO I USE THE MYCONN VARIABLE AS DEFINED IN CLASS.DATABASE
$stmt = $this->myconn->prepare(" SELECT * FROM news ");

//the rest of the $stmt etc etc....

}

}

1 个答案:

答案 0 :(得分:0)

如果要在其他类中使用数据库类,那么它是其他类型的依赖项。您的类不应该扩展数据库类,因为它不会。

您应该像以前一样包含数据库类,并使用它。

然后你应该像这样使用它(基于你提供的代码):

$me = new Database();
$me->connect();
$stmt = $me->myconn->prepare(" SELECT * FROM news ");

但是你应该在继续之前阅读一些关于OOP的论文,因为你没有正确使用这个范例。