我对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>';
}
答案 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;
}