在文件中创建提取查询,然后在另一个文件中显示

时间:2018-12-09 23:31:57

标签: php mysql oop

我对PHP和MySQL上的OOP有疑问。

我正在使用OOP使用PHP 7,我想建立一个Connection类。在这些班上
我有一个生成查询到数据库并将其存储在数组中的方法。我希望在另一个文件的另一个类中打开该数组的结果。 如果使用if语句,则发送单个值,如果使用while循环,则在另一个文件中请求向量时不显示任何内容。 我想创建此方法,以避免不得不重写对与数据库连接的调用。

这是将继承显示数据的类的代码。

public function open_connection()
{ 
    $this->connect = new mysqli( self::$SERVER, self::$USER, self::$PASS, $this->DB ) or die ( "Error" ); 
} 

public function close_connection()
{ 
    mysqli_close( $this->connect ); 
}

protected function execute_a_fetch_query( )
{
    $this->open_connection();
    $orderA = $this->connect->query( $this->query );
    $orderB = $this->connect->query( $this->query );
    if ( $this->rows = mysqli_fetch_array( $orderA ) ) { //this sentence avoid a duplicate result from the query
        if ( $this->rows = mysqli_fetch_array( $orderB ) );
    }
    $this->close_connection();
}

这是Show类中的另一个方法

public function data( $attributes = array() )
{
    $this->query = 'select * from Supplier';
    $this->execute_a_fetch_query();

    echo '<tr>';

    for ( $i = 0; $i < count( $this->_attributes ); $i++ ) {
        echo 
            '<td>'. $this->rows[ $attributes[ $i ] ]. '</td>'; 
    }

1 个答案:

答案 0 :(得分:-1)

在OOP中,您有一个构造函数,可以通过在实例化该对象时建立该连接来帮助您,从而不必在每个查询中使用$this->open_connection();

代替创建open_connection()函数使用

function __ construct(){
  $this->connect = new mysqli( self::$SERVER, self::$USER, self::$PASS, $this->DB ) or 
    die ( "Error" );
 }

因此$obj = new BaseClass();将打开一个连接。

您也可以在同一类中拥有一个私有变量

private $dataObject,可以在查询$this->$dataObject = $result;中设置

和可以调用以返回变量的公共函数。

public function getData()
{
  return $this->$dataObject;
}