我有这样的代码,从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;
}
}
}
?>
对于我的,可能是一个愚蠢的问题。但我真的不知道如何(
答案 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
。