类方法和实例化

时间:2011-11-07 23:15:28

标签: php

我正在做点什么。我试图在config.php中创建一个包含连接数据库的方法的类。在dbConnectExample.php中,实例化该类并调用该方法。我有点困惑,因为我也在学习其他编程课程。这是我到目前为止所拥有的;

    <?php # Scripts 6.3 - Rectangle.php

Class Rectangle {

//Declare the attributes:
public $width = 0;
public $height = 0;

//Method to set the dimensions.
Function set_size($w = 0, $h = 0) {
        $this->width = $w;
        $this->height = $h;
}

//Method to calculate and return the area.
function get_area() {
    return ($this->width * $this->height);
    }

// Method to calculate and return the perimeter.
function get_perimeter() {
    return ( ( $this->width + $this->height) * 2 );
    }

    //Method to determine if the rectangle
    //is also a square
    function is_square() {

    if ($this->width == $this->height) {
    return true; //Square
    } else {
        return false; //Not a square
    }
  }

} //End of Rectangle class.

我知道我正在用方法创建一个类。我很困惑,连接到你这样的数据库;

    //Connect to the database
$DBConnect = @new mysqli("localhost", "valerie_2shuawna", "norris");
if (mysqli_connect_errno())
      die("<p>Unable to connect to the database server.</p>"
      . "<p>Error code " . mysqli_connect_errno()
      . ": " . mysqli_connect_error()) . "</p>";
$DBName = "config.php";
    @$DBConnect->select_db($DBName)
         Or die("<p>Unable to select the database.</p>"
         . "<p>Error code " . mysqli_errno($DBConnect)
         . ": " . mysqli_error($DBConnect)) . "</p>";

$DBConnect->close();

但我想要实例化该类并调用该方法。然后配置它包含一个连接到数据库的方法。如果有人可以帮我弄清楚我做错了什么,也许可以解释一下,所以我不会感到困惑,我会很感激。

3 个答案:

答案 0 :(得分:2)

您可以创建一个简单的类:

// Database.php

class Database
{
    public static function getDbo($dbName)
    {
        $dbo = new mysqli("localhost", "user", "password");

        if (mysqli_connect_errno()) {
            throw new Exception(
                "<p>Unable to connect to the database server.</p>"
               . "<p>Error code " . mysqli_connect_errno()
               . ": " . mysqli_connect_error()) . "</p>"
            );
        }

        if (!$dbo->select_db($dbName)) {
            throw new Exception(
                "<p>Unable to select the database.</p>"
                . "<p>Error code " . mysqli_errno($DBConnect)
                . ": " . mysqli_error($DBConnect)) . "</p>"
            );
        }

        return $dbo;
    }
}

// SomeFile.php

require_once 'Database.php';

try {
    $dbo = Database::getDbo();

    // If I made it this far then I can start querying
    $dbo->query('SELECT stuff FROM table');

    // etc.

} catch (Exception $e) {
    die($e->getMessage());
}

答案 1 :(得分:0)

你可能想要include_once(“config.php”)。

config.php应该包括1)数据库设置,如用户名和密码,或者2)获取这些值并实际执行连接

首先创建一个包含config.php的php文件。

您应该能够从config.php包含的文件中看到“连接数据库的方法。”

确保你打电话给它。希望有所帮助! :)

同样要实例化类,请使用新的关键字,如

 $square = new Square();

答案 2 :(得分:-1)

将数据库连接代码包装在一个函数中,然后将其包装在一个类中。在config.php中坚持该类。在dbConnectExample.php中实例化该类(请参阅@jakx的推荐)。