db在php中连接

时间:2011-10-31 18:08:53

标签: php constructor

我有这样的代码,从i-net类下载db。 我很感兴趣,我怎么能在构造函数中进行连接,这样我就不会像现在这样在每个方法中连接db。但我得到了很多错误,这里是代码:

<?php
include_once('mysqldatabase.php');
include_once('mysqlresultset.php');
class Car
{
    public $marka;
    public $model;
    public $engineVol;
    public $VIN;
    public $engineType;
    public $transmission;
    public $bodyType;
    public $other;
    public $clientCode;
    public $code;

    public function __construct()
    {


    }

    public function viewCar($id)
    {
        $db = MySqlDatabase::getInstance();
        try {
            $conn = $db->connect('localhost', 'root', '', 'discont');
        } 
        catch (Exception $e) {
            die($e->getMessage());
        }
        echo "view <br>   ";
        $query = 'SELECT * FROM car Where Code = '.$id.'';
            foreach ($db->iterate($query) as $row) {
            echo "<br>";
            echo "~".$row->Marka;
        }
    }

    public function addCar()
    {
        echo "add";
        $db = MySqlDatabase::getInstance();
            try {
            $conn = $db->connect('localhost', 'root', '', 'discont');
        } 
        catch (Exception $e) {
            die($e->getMessage());
        }

            $query = "SELECT * FROM car";
        foreach ($db->iterate($query) as $row) {
            echo "<br>";
            echo $row->Marka;
        }
    }
}

?>
对于我的,可能是一个愚蠢的问题。但我真的不知道如何(

1 个答案:

答案 0 :(得分:1)

声明一个类变量$db

private $db;

将此代码从viewCar()移至构造函数:

$this->db = MySqlDatabase::getInstance();
try {
    $conn = $this->db->connect('localhost', 'root', '', 'discont');
} 
catch (Exception $e) {
    die($e->getMessage());
}

从addCar()中删除重复的代码,最后将viewCar()addCar()中的引用从$db更新为$this->db