Здесь неправильно не то что всё, а даже больше.
Потому что ёще до того как вы взялись писать этот "класс", не выучив даже базовый ООП синтаксис, код вашей "функции" уже был очень плохой.
Я сейчас напишу минимально приемлемый вариант, но повторять его не надо. Потому что всё равно непонятно будет.
Надо забыть временно про классы и учить базовый синтаксис РНР. Просто потому что сначала надо выучить базовые понятия - работу с БД, обработку ошибок, разделение ответственности:
- работа с переменными в запросе ведётся через параметризованные запросы
- код класса не должно тошнить прямо на экран сообщениями об ошибках
- метод get
Array не должен возвращать объект класса mysqli_result. он должен возвращать
массив
- код, который будет в дальнейшем работать с результатом вызова метода getArray, не должен ничего знать про базу данных
Про сам же код ООП надо
хотя бы один раз посмотреть его в учебнике, а не писать на основе чистой фантазии.
class CProducts
{
private $link;
public function __construct(mysqli $link) {
$thi->link = $link;
}
public function getArray($lim) {
$query = "SELECT * FROM products ORDER BY DATE_CREATE DESC LIMIT ?";
$stmt = $this->link->prepare($query);
$stmt->bind_param("s", $lim);
$stmt->exeсute();
$result = $stmt->get_result();
return $result->fetch_all(MYSQLI_ASSOC);
}
}
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT);
$db = new mysqli($host, $user, $pass, $dbname);
$db->set_charset('utf8mb4');
$db->options(MYSQLI_OPT_INT_AND_FLOAT_NATIVE, 1);
$product = new CProducts($db);
$result = $product->getArray(3);