Хочу обработку запроса к базе данных описать в методе класса.
function verifyUser($name) {
$query = "SELECT psw, user_group FROM users WHERE name = ?";
$stmt = $mysqli->stmt_init();
if ($stmt = $mysqli->prepare($query)) {
/* связываем параметры с метками */
$stmt->bind_param("s", $name);
/* запускаем запрос */
$stmt->execute();
/* связываем переменные с результатами запроса */
$stmt->bind_result($psw, $user_group);
/* получаем значения */
$stmt->fetch();
printf("login - %s, password - %s, user_group - %s", $name, $psw, $user_group);
/* закрываем запрос */
$stmt->close();
}
}
}
$name = $_POST["name"];
$auth = new Auth($name);
$auth->verifyUser($name);
$mysqli - объект класса mysqli. Соединение с базой выполнено.
Итог: Fatal error: Call to a member function stmt_init() on a non-object
Указывает на строку $stmt = $mysqli->stmt_init();.
Если использовать код вне класса, то все работает. Я понял, что $stmt должен быть объектом. Как его объявить в классе я не знаю и устал уже искать примеры.