在一个文件中创建一个fetch查询并在另一个文件中显示它

eanckbw9  于 2021-06-18  发布在  Mysql
关注(0)|答案(1)|浏览(205)

我有一个关于php和mysql的oop问题。
我正在使用oop处理PHP7,我想建立一个类连接。在这些班级里
我有一个方法,可以生成对数据库的查询并将其存储在数组中。我希望该数组的结果在另一个文件的另一个类中打开。如果使用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>'; 
    }
jq6vz3qz

jq6vz3qz1#

在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;
}

相关问题