В чем ошибка при создании класса для работы с mysqli
class db
{
var $query_num = 0;
var $query_id = false;
function __construct() {
$this->db_id = @mysqli_connect('localhost', 'user', 'pass', 'baza');
mysqli_set_charset ($this->db_id , "utf8");
$this->sql_mode();
}
function query($query)
{
if(!$this->db_id)
$this->db_id = @mysqli_connect('localhost', 'user', 'pass', 'baza');
$this->query_id = mysqli_query($this->db_id, $query);
$this->query_num ++;
return $this->query_id;
}
function get_row()
{
return mysqli_fetch_assoc($this->query_id);
}
function get_array()
{
return mysqli_fetch_array($this->query_id);
}
function insert_id()
{
return mysqli_insert_id($this->db_id);
}
function close()
{
@mysqli_close($this->db_id);
}
function sql_mode()
{
$res = $this->query( "SELECT @@SESSION.sql_mode" );
$this->query_num --;
$row = $this->get_array();
if (!$row[0]) return;
$modes_array = explode( ',', $row[0] );
$modes_array = array_change_key_case( $modes_array, CASE_UPPER );
foreach ($modes_array as $key => $value)
if (in_array( $value, ['STRICT_TRANS_TABLES', 'STRICT_ALL_TABLES', 'ONLY_FULL_GROUP_BY', 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE', 'TRADITIONAL']))
unset( $modes_array[ $key ] );
$mode_list = implode(',', $modes_array);
if($row[0] != $mode_list) {
$this->query( "SET SESSION sql_mode='{$mode_list}'" );
$this->query_num --;
}
}
}
$db = new db;
Не понимаю, как выполнить таким образом. Чтобы подключение работала при подгрузке класса. То есть перенести в конструктор?
Убрать из
function query($query)
Строчку
$this->db_id = @mysqli_connect('localhost', 'user', 'pass', 'baza');